@namecheap/tsoa-cli
Version:
Build swagger-compliant REST APIs using TypeScript and Node
42 lines • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateRoutes = void 0;
const path = require("path");
const metadataGenerator_1 = require("../metadataGeneration/metadataGenerator");
const routeGenerator_1 = require("../routeGeneration/routeGenerator");
const pathUtils_1 = require("../utils/pathUtils");
const fs_1 = require("../utils/fs");
const generateRoutes = async (routesConfig, compilerOptions, ignorePaths,
/**
* pass in cached metadata returned in a previous step to speed things up
*/
metadata) => {
if (!metadata) {
metadata = new metadataGenerator_1.MetadataGenerator(routesConfig.entryFile, compilerOptions, ignorePaths, routesConfig.controllerPathGlobs).Generate();
}
const routeGenerator = new routeGenerator_1.RouteGenerator(metadata, routesConfig);
let pathTransformer = pathUtils_1.convertBracesPathParams;
let template;
switch (routesConfig.middleware) {
case 'express':
template = path.join(__dirname, '..', 'routeGeneration/templates/express.hbs');
break;
case 'hapi':
template = path.join(__dirname, '..', 'routeGeneration/templates/hapi.hbs');
pathTransformer = (path) => path;
break;
case 'koa':
template = path.join(__dirname, '..', 'routeGeneration/templates/koa.hbs');
break;
default:
template = path.join(__dirname, '..', 'routeGeneration/templates/express.hbs');
}
if (routesConfig.middlewareTemplate) {
template = routesConfig.middlewareTemplate;
}
await (0, fs_1.fsMkDir)(routesConfig.routesDir, { recursive: true });
await routeGenerator.GenerateCustomRoutes(template, pathTransformer);
return metadata;
};
exports.generateRoutes = generateRoutes;
//# sourceMappingURL=generate-routes.js.map