Initial commit
This commit is contained in:
commit
78f8d225ee
21173 changed files with 2907774 additions and 0 deletions
53
node_modules/next/dist/shared/lib/router/utils/interpolate-as.js
generated
vendored
Normal file
53
node_modules/next/dist/shared/lib/router/utils/interpolate-as.js
generated
vendored
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "interpolateAs", {
|
||||
enumerable: true,
|
||||
get: function() {
|
||||
return interpolateAs;
|
||||
}
|
||||
});
|
||||
const _routematcher = require("./route-matcher");
|
||||
const _routeregex = require("./route-regex");
|
||||
function interpolateAs(route, asPathname, query) {
|
||||
let interpolatedRoute = '';
|
||||
const dynamicRegex = (0, _routeregex.getRouteRegex)(route);
|
||||
const dynamicGroups = dynamicRegex.groups;
|
||||
const dynamicMatches = // Try to match the dynamic route against the asPath
|
||||
(asPathname !== route ? (0, _routematcher.getRouteMatcher)(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href
|
||||
// TODO: should this take priority; also need to change in the router.
|
||||
query;
|
||||
interpolatedRoute = route;
|
||||
const params = Object.keys(dynamicGroups);
|
||||
if (!params.every((param)=>{
|
||||
let value = dynamicMatches[param] || '';
|
||||
const { repeat, optional } = dynamicGroups[param];
|
||||
// support single-level catch-all
|
||||
// TODO: more robust handling for user-error (passing `/`)
|
||||
let replaced = "[" + (repeat ? '...' : '') + param + "]";
|
||||
if (optional) {
|
||||
replaced = (!value ? '/' : '') + "[" + replaced + "]";
|
||||
}
|
||||
if (repeat && !Array.isArray(value)) value = [
|
||||
value
|
||||
];
|
||||
return (optional || param in dynamicMatches) && // Interpolate group into data URL if present
|
||||
(interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(// these values should be fully encoded instead of just
|
||||
// path delimiter escaped since they are being inserted
|
||||
// into the URL and we expect URL encoded segments
|
||||
// when parsing dynamic route params
|
||||
(segment)=>encodeURIComponent(segment)).join('/') : encodeURIComponent(value)) || '/');
|
||||
})) {
|
||||
interpolatedRoute = '' // did not satisfy all requirements
|
||||
;
|
||||
// n.b. We ignore this error because we handle warning for this case in
|
||||
// development in the `<Link>` component directly.
|
||||
}
|
||||
return {
|
||||
params,
|
||||
result: interpolatedRoute
|
||||
};
|
||||
}
|
||||
|
||||
//# sourceMappingURL=interpolate-as.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue