_pathToRoutePath(rawPath) {
const routePath = rawPath
.split('/')
- .map((p) => p.startsWith(this.paramPrefix) ? new PathParameter(p.slice(this.paramPrefix.length)) : p);
+ .map((p) => this._pathPartMunge(p));
+
if (this.ignoreTrailingSlash
&& routePath[routePath.length - 1] === '') {
routePath.pop();
}
+
routePath[kPathMethods] = {};
Object.freeze(routePath);
return routePath;
}
+ /*
+ * Convert a path part string to parameter if needed.
+ * Remove escape from an escaped parameter.
+ * @param {String} part
+ * @returns {PathParameter|String}
+ * @private
+ */
+ _pathPartMunge(part) {
+ if (part.startsWith(this.paramPrefix)) {
+ return new PathParameter(part.slice(this.paramPrefix.length));
+ }
+ if (part.startsWith('\\' + this.paramPrefix)) {
+ return part.slice(1);
+ }
+ return part;
+ }
+
+
/**
* Compare checkPath to fixedPath, no param substitution, params must match.
* @param {Router~RoutePath} routePath