swagger-typed-express-docs
Version:
Simple express runtime parser and documentation swagger generator with 100% support of Typescript static types
36 lines (35 loc) • 1.21 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseUrlFromExpressRegexp = void 0;
var replacers = {
prefixUrlSlash: '/^',
slashBetweenRoutes: '/',
urlParamString: '(?:([^\\/]+?))',
endOfRegExpString: '/i',
endUrlQueryString: '(?=\\/|$)',
optionalSlash: '\\/?',
requiredSlash: '\\/',
};
var parseUrlFromExpressRegexp = function (regexpString, params) {
if (params === void 0) { params = []; }
var parsedRegExPath = regexpString
.substr(replacers.prefixUrlSlash.length)
.slice(0, -replacers.endOfRegExpString.length)
.slice(0, -replacers.endUrlQueryString.length)
.split(replacers.urlParamString)
.flatMap(function (item, index) {
var _a;
var isLastItem = params.length > index;
if (!isLastItem) {
return [item];
}
return [item, ":".concat((_a = params[index]) === null || _a === void 0 ? void 0 : _a.name)];
})
.join('')
.split(replacers.optionalSlash)
.join('/')
.split(replacers.requiredSlash)
.join('/');
return parsedRegExPath;
};
exports.parseUrlFromExpressRegexp = parseUrlFromExpressRegexp;
;