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>
28 lines
No EOL
1.1 KiB
Text
28 lines
No EOL
1.1 KiB
Text
import { denormalizePagePath } from '../../../shared/lib/page-path/denormalize-page-path';
|
|
import { PrefixPathnameNormalizer } from './prefix';
|
|
import { SuffixPathnameNormalizer } from './suffix';
|
|
export class NextDataPathnameNormalizer {
|
|
constructor(buildID){
|
|
this.suffix = new SuffixPathnameNormalizer('.json');
|
|
if (!buildID) {
|
|
throw Object.defineProperty(new Error('Invariant: buildID is required'), "__NEXT_ERROR_CODE", {
|
|
value: "E200",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
this.prefix = new PrefixPathnameNormalizer(`/_next/data/${buildID}`);
|
|
}
|
|
match(pathname) {
|
|
return this.prefix.match(pathname) && this.suffix.match(pathname);
|
|
}
|
|
normalize(pathname, matched) {
|
|
// If we're not matched and we don't match, we don't need to normalize.
|
|
if (!matched && !this.match(pathname)) return pathname;
|
|
pathname = this.prefix.normalize(pathname, true);
|
|
pathname = this.suffix.normalize(pathname, true);
|
|
return denormalizePagePath(pathname);
|
|
}
|
|
}
|
|
|
|
//# sourceMappingURL=next-data.js.map |