preload-next
Version:
A Preload Link Component for Next.js to handle seamless page transitions
25 lines (24 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveDynamicRoute = void 0;
var denormalize_page_path_1 = require("next/dist/shared/lib/page-path/denormalize-page-path");
var utils_1 = require("next/dist/shared/lib/router/utils");
var route_regex_1 = require("next/dist/shared/lib/router/utils/route-regex");
var utils_2 = require("./utils");
var resolveDynamicRoute = function (pathname, pages) {
var cleanPathname = (0, utils_2.removePathTrailingSlash)((0, denormalize_page_path_1.denormalizePagePath)(pathname));
if (cleanPathname === "/404" || cleanPathname === "/_error") {
return pathname;
}
if (!pages.includes(cleanPathname)) {
// eslint-disable-next-line array-callback-return
pages.some(function (page) {
if ((0, utils_1.isDynamicRoute)(page) && (0, route_regex_1.getRouteRegex)(page).re.test(cleanPathname)) {
pathname = page;
return true;
}
});
}
return (0, utils_2.removePathTrailingSlash)(pathname);
};
exports.resolveDynamicRoute = resolveDynamicRoute;