UNPKG

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
"use strict"; 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;