import type { CurriculumWeek } from '../curriculum/types' import type { ModuleRow } from './types' export const compareModulePriority = (a: ModuleRow, b: ModuleRow): number => a.sortOrder - b.sortOrder export const compareModuleShutdownPriority = (a: ModuleRow, b: ModuleRow): number => b.sortOrder - a.sortOrder export function makeUninstalledModuleRows(curriculumModules: CurriculumWeek['modules']): ModuleRow[] { return (curriculumModules ?? []) .map((module) => ({ state: 'uninstalled' as const, sortOrder: module.sortOrder, category: module.category, name: module.name, folderName: module.folderName, sourcePath: module.templateRepositoryUrl ?? '', workspacePath: null, templateRepositoryUrl: module.templateRepositoryUrl ?? null, sourceType: module.sourceType ?? null, prebuiltArtifacts: module.prebuiltArtifacts ?? null, parameters: module.defaultParameters?.filter((parameter): parameter is string => typeof parameter === 'string') ?? [], cpu: null, memory: null, runtime: '-' })) .sort(compareModulePriority) }