import fs from 'fs/promises'; import { join } from 'path'; import { getExampleList } from '../examples/example-list'; import { mapOldToNew } from '../examples/map-old-to-new'; const repoRoot = join(__dirname, '..', '..', '..'); const pubDir = join(repoRoot, 'public'); async function main() { console.log(`Building static frontend ${repoRoot}...`); await fs.rm(pubDir, { recursive: true, force: true }); await fs.mkdir(pubDir); const examples = await getExampleList(); const pathListAll = join(pubDir, 'list-all.json'); await fs.writeFile(pathListAll, JSON.stringify(examples)); const exampleDirs = await fs.readdir(join(repoRoot, 'examples'), { withFileTypes: true, }); const existingExamples = exampleDirs .filter(dir => dir.isDirectory()) .map(dir => ({ name: dir.name, visible: true, suggestions: [], })); const oldExamples = Object.keys(mapOldToNew).map(key => ({ name: key, visible: false, suggestions: mapOldToNew[key], })); const pathList = join(pubDir, 'list.json'); await fs.writeFile( pathList, JSON.stringify([...existingExamples, ...oldExamples]) ); console.log('Completed building static frontend.'); } main().catch(console.error);