28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
TypeScript
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)
|
|
}
|