Initial commit
This commit is contained in:
commit
78f8d225ee
21173 changed files with 2907774 additions and 0 deletions
54
node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js
generated
vendored
Normal file
54
node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js
generated
vendored
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "normalizeLocalePath", {
|
||||
enumerable: true,
|
||||
get: function() {
|
||||
return normalizeLocalePath;
|
||||
}
|
||||
});
|
||||
/**
|
||||
* A cache of lowercased locales for each list of locales. This is stored as a
|
||||
* WeakMap so if the locales are garbage collected, the cache entry will be
|
||||
* removed as well.
|
||||
*/ const cache = new WeakMap();
|
||||
function normalizeLocalePath(pathname, locales) {
|
||||
// If locales is undefined, return the pathname as is.
|
||||
if (!locales) return {
|
||||
pathname
|
||||
};
|
||||
// Get the cached lowercased locales or create a new cache entry.
|
||||
let lowercasedLocales = cache.get(locales);
|
||||
if (!lowercasedLocales) {
|
||||
lowercasedLocales = locales.map((locale)=>locale.toLowerCase());
|
||||
cache.set(locales, lowercasedLocales);
|
||||
}
|
||||
let detectedLocale;
|
||||
// The first segment will be empty, because it has a leading `/`. If
|
||||
// there is no further segment, there is no locale (or it's the default).
|
||||
const segments = pathname.split('/', 2);
|
||||
// If there's no second segment (ie, the pathname is just `/`), there's no
|
||||
// locale.
|
||||
if (!segments[1]) return {
|
||||
pathname
|
||||
};
|
||||
// The second segment will contain the locale part if any.
|
||||
const segment = segments[1].toLowerCase();
|
||||
// See if the segment matches one of the locales. If it doesn't, there is
|
||||
// no locale (or it's the default).
|
||||
const index = lowercasedLocales.indexOf(segment);
|
||||
if (index < 0) return {
|
||||
pathname
|
||||
};
|
||||
// Return the case-sensitive locale.
|
||||
detectedLocale = locales[index];
|
||||
// Remove the `/${locale}` part of the pathname.
|
||||
pathname = pathname.slice(detectedLocale.length + 1) || '/';
|
||||
return {
|
||||
pathname,
|
||||
detectedLocale
|
||||
};
|
||||
}
|
||||
|
||||
//# sourceMappingURL=normalize-locale-path.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue