Rocky_Mountain_Vending/.pnpm-store/v10/files/56/5481adc93282390ef06e13e98004b4be6e142b3264b23cd76c2ecac11350b00e1420045b252116072bc0d69f371a969778c21e3d818a25db6ab5788d21e013
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

35 lines
No EOL
1.2 KiB
Text

import { DecodeError } from '../../utils';
import { safeRouteMatcher } from './route-match-utils';
export function getRouteMatcher({ re, groups }) {
const rawMatcher = (pathname)=>{
const routeMatch = re.exec(pathname);
if (!routeMatch) return false;
const decode = (param)=>{
try {
return decodeURIComponent(param);
} catch {
throw Object.defineProperty(new DecodeError('failed to decode param'), "__NEXT_ERROR_CODE", {
value: "E528",
enumerable: false,
configurable: true
});
}
};
const params = {};
for (const [key, group] of Object.entries(groups)){
const match = routeMatch[group.pos];
if (match !== undefined) {
if (group.repeat) {
params[key] = match.split('/').map((entry)=>decode(entry));
} else {
params[key] = decode(match);
}
}
}
return params;
};
// Wrap with safe matcher to handle parameter cleaning
return safeRouteMatcher(rawMatcher);
}
//# sourceMappingURL=route-matcher.js.map