import { Router } from 'express' import { listPackKeys, loadPackDefinition, readManifest } from '../../shared/store.js' export const indexRouter = Router() indexRouter.get('/', async (_req, res, next) => { try { const manifest = await readManifest() const definitionMap = new Map>>() const keys = await listPackKeys() // 팩 정의를 병렬 로드(op.ts 와 동일 패턴). 순차 await 보다 빠름. const definitions = await Promise.all(keys.map((key) => loadPackDefinition(key))) keys.forEach((key, i) => definitionMap.set(key, definitions[i])) const packs = manifest.packs.map((entry) => ({ name: entry.name, file: entry.file, definition: definitionMap.get(entry.file) ?? null })) res.render('index', { packs }) } catch (error) { next(error) } })