Files
makelore/shared/module-access.ts

31 lines
875 B
TypeScript

export const MODULE_ACCESS_KEYS = [
'programming',
'design',
'learning',
'robot',
] as const;
export type ModuleAccessKey = typeof MODULE_ACCESS_KEYS[number];
export type ModuleAccess = Record<ModuleAccessKey, boolean>;
export const DEFAULT_MODULE_ACCESS: ModuleAccess = {
programming: true,
design: true,
learning: true,
robot: true,
};
export function normalizeModuleAccess(value: unknown): ModuleAccess {
const record = value && typeof value === 'object' && !Array.isArray(value)
? value as Record<string, unknown>
: {};
return {
programming: typeof record.programming === 'boolean' ? record.programming : true,
design: typeof record.design === 'boolean' ? record.design : true,
learning: typeof record.learning === 'boolean' ? record.learning : true,
robot: typeof record.robot === 'boolean' ? record.robot : true,
};
}