file-routing-expressjs
Version:
A dependency-free, flexible, system-based file routing for Express.
1 lines • 2.48 kB
Source Map (JSON)
{"version":3,"sources":["../../src/cli/collect.ts"],"sourcesContent":["import { normalizeCLIOptions } from \"../helpers/validators\";\nimport FileBasedRouting from \"../models/file-based-routing\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport { printTable, printTree } from \"../helpers/cli\";\nimport { logger } from \"../helpers/logging\";\nimport { program } from \"./program\";\n\nexport default function configCollectCommand() {\n program\n .command(\"collect\")\n .option(\"--target <path>\", \"base folder for endpoints\", \"./src/routes\")\n .option(\"--output <type>\", \"tree | json | table\", \"tree\")\n .action(async (options) => {\n try {\n const config = normalizeCLIOptions(options);\n const endpoints = await FileBasedRouting.collectRoutes(config.target);\n\n switch(config.output) {\n case \"json\":\n const dir = path.join(process.cwd(), \".fre\", \"routes\");\n fs.mkdirSync(dir, { recursive: true });\n\n const file = path.join(dir, `${Date.now()}.json`);\n fs.writeFileSync(file, JSON.stringify(endpoints, null, 2), \"utf-8\");\n logger.info(`Saved to ${file}`);\n break;\n case \"table\":\n printTable(endpoints);\n break;\n default:\n printTree(endpoints);\n break;\n }\n } catch (err: any) {\n logger.error(err.message);\n process.exit(1);\n }\n });\n\n return program;\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,2BAA2B;AACpC,OAAO,sBAAsB;AAC7B,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,YAAY,iBAAiB;AACtC,SAAS,cAAc;AACvB,SAAS,eAAe;AAET,SAAR,uBAAwC;AAC3C,UACK,QAAQ,SAAS,EACjB,OAAO,mBAAmB,6BAA6B,cAAc,EACrE,OAAO,mBAAmB,uBAAuB,MAAM,EACvD,OAAO,CAAO,YAAY;AACvB,QAAI;AACJ,YAAM,SAAS,oBAAoB,OAAO;AAC1C,YAAM,YAAY,MAAM,iBAAiB,cAAc,OAAO,MAAM;AAEpE,cAAO,OAAO,QAAQ;AAAA,QAClB,KAAK;AACL,gBAAM,MAAM,KAAK,KAAK,QAAQ,IAAI,GAAG,QAAQ,QAAQ;AACrD,aAAG,UAAU,KAAK,EAAE,WAAW,KAAK,CAAC;AAErC,gBAAM,OAAO,KAAK,KAAK,KAAK,GAAG,KAAK,IAAI,CAAC,OAAO;AAChD,aAAG,cAAc,MAAM,KAAK,UAAU,WAAW,MAAM,CAAC,GAAG,OAAO;AAClE,iBAAO,KAAK,YAAY,IAAI,EAAE;AAC9B;AAAA,QACA,KAAK;AACL,qBAAW,SAAS;AACpB;AAAA,QACA;AACA,oBAAU,SAAS;AACnB;AAAA,MACJ;AAAA,IACA,SAAS,KAAU;AACnB,aAAO,MAAM,IAAI,OAAO;AACxB,cAAQ,KAAK,CAAC;AAAA,IACd;AAAA,EACJ,EAAC;AAEL,SAAO;AACX;","names":[]}