54 lines
2.4 KiB
JavaScript
54 lines
2.4 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "getNextPathnameInfo", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return getNextPathnameInfo;
|
|
}
|
|
});
|
|
const _normalizelocalepath = require("../../i18n/normalize-locale-path");
|
|
const _removepathprefix = require("./remove-path-prefix");
|
|
const _pathhasprefix = require("./path-has-prefix");
|
|
function getNextPathnameInfo(pathname, options) {
|
|
var _options_nextConfig;
|
|
const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};
|
|
const info = {
|
|
pathname,
|
|
trailingSlash: pathname !== "/" ? pathname.endsWith("/") : trailingSlash
|
|
};
|
|
if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {
|
|
info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);
|
|
info.basePath = basePath;
|
|
}
|
|
let pathnameNoDataPrefix = info.pathname;
|
|
if (info.pathname.startsWith("/_next/data/") && info.pathname.endsWith(".json")) {
|
|
const paths = info.pathname.replace(/^\/_next\/data\//, "").replace(/\.json$/, "").split("/");
|
|
const buildId = paths[0];
|
|
info.buildId = buildId;
|
|
pathnameNoDataPrefix = paths[1] !== "index" ? "/" + paths.slice(1).join("/") : "/";
|
|
// update pathname with normalized if enabled although
|
|
// we use normalized to populate locale info still
|
|
if (options.parseData === true) {
|
|
info.pathname = pathnameNoDataPrefix;
|
|
}
|
|
}
|
|
// If provided, use the locale route normalizer to detect the locale instead
|
|
// of the function below.
|
|
if (i18n) {
|
|
let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);
|
|
info.locale = result.detectedLocale;
|
|
var _result_pathname;
|
|
info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;
|
|
if (!result.detectedLocale && info.buildId) {
|
|
result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);
|
|
if (result.detectedLocale) {
|
|
info.locale = result.detectedLocale;
|
|
}
|
|
}
|
|
}
|
|
return info;
|
|
}
|
|
|
|
//# sourceMappingURL=get-next-pathname-info.js.map
|