import { Router } from 'express'; import type { AnyAPIExecuter, APINamespace } from './defs.js'; export function buildAPISystem(api: N | Q): Router { const router = Router(); for (const [key, value] of Object.entries(api)) { if (typeof value === 'function') { const executer = new value() as Q; if (!executer.reqType) { throw new Error('APIExecuter.reqType is not defined'); } router[executer.reqType](key, async (req, res) => { await executer.run(req, res); }); continue; } else { router.use(key, buildAPISystem(value)); } } return router; }