Files
lms-web-fe/src/lms-renderer/features/workspace/workspaceModules.ts
T
2026-08-04 11:20:33 +09:00

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)
}