Files
Basilosaurusrex f027651f9b main repo
2025-11-24 18:09:40 +01:00

40 lines
1.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "getRouteMatcher", {
enumerable: true,
get: function() {
return getRouteMatcher;
}
});
const _utils = require("../../utils");
function getRouteMatcher(param) {
let { re, groups } = param;
return (pathname)=>{
const routeMatch = re.exec(pathname);
if (!routeMatch) {
return false;
}
const decode = (param)=>{
try {
return decodeURIComponent(param);
} catch (_) {
throw new _utils.DecodeError("failed to decode param");
}
};
const params = {};
Object.keys(groups).forEach((slugName)=>{
const g = groups[slugName];
const m = routeMatch[g.pos];
if (m !== undefined) {
params[slugName] = ~m.indexOf("/") ? m.split("/").map((entry)=>decode(entry)) : g.repeat ? [
decode(m)
] : decode(m);
}
});
return params;
};
}
//# sourceMappingURL=route-matcher.js.map