routing-controllers-openapi-extended
Version:
Runtime Swagger v2 / OpenAPI v2 specification generation for routing-controllers
28 lines • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const _ = require("lodash");
const pathToRegexp = require("path-to-regexp");
const operationParser_1 = require("./operationParser");
function expressToOpenAPIPath(expressPath) {
const tokens = pathToRegexp.parse(expressPath);
return tokens.map(d => (_.isString(d) ? d : `${d.prefix}{${d.name}}`)).join('');
}
function getFullExpressPath(route) {
const { action, controller, options } = route;
return `${options.routePrefix || ''}${controller.route || ''}${action.route || ''}`;
}
exports.getFullExpressPath = getFullExpressPath;
function getFullPath(route) {
return expressToOpenAPIPath(getFullExpressPath(route));
}
exports.getFullPath = getFullPath;
function getPaths(routes) {
const routePaths = routes.map(route => ({
[getFullPath(route)]: {
[route.action.type]: operationParser_1.getOperation(route)
}
}));
return _.merge(...routePaths);
}
exports.getPaths = getPaths;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aFBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvcGF0aFBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDRCQUEyQjtBQUMzQiwrQ0FBOEM7QUFFOUMsdURBQWlEO0FBRWpELFNBQVMsb0JBQW9CLENBQUMsV0FBbUI7SUFDN0MsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ25GLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFZO0lBQzNDLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQztJQUU5QyxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQztBQUN4RixDQUFDO0FBSkQsZ0RBSUM7QUFFRCxTQUFnQixXQUFXLENBQUMsS0FBWTtJQUNwQyxPQUFPLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFDMUQsQ0FBQztBQUZELGtDQUVDO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLE1BQWU7SUFDcEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNwQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsOEJBQVksQ0FBQyxLQUFLLENBQUM7U0FDekM7S0FDRixDQUFDLENBQUMsQ0FBQztJQUdKLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFURCw0QkFTQyJ9