next-intlayer 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cjs/client/index.cjs +48 -0
- package/dist/cjs/client/index.cjs.map +1 -0
- package/dist/cjs/client/index.d.ts +10 -0
- package/dist/cjs/client/useLocale.cjs +68 -0
- package/dist/cjs/client/useLocale.cjs.map +1 -0
- package/dist/cjs/client/useLocale.d.ts +12 -0
- package/dist/cjs/generateStaticParams.cjs +36 -0
- package/dist/cjs/generateStaticParams.cjs.map +1 -0
- package/dist/cjs/generateStaticParams.d.ts +7 -0
- package/dist/cjs/index.cjs +51 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.ts +15 -0
- package/dist/cjs/middleware/index.cjs +35 -0
- package/dist/cjs/middleware/index.cjs.map +1 -0
- package/dist/cjs/middleware/index.d.ts +2 -0
- package/dist/cjs/middleware/intlayerMiddleware.cjs +230 -0
- package/dist/cjs/middleware/intlayerMiddleware.cjs.map +1 -0
- package/dist/cjs/middleware/intlayerMiddleware.d.ts +5 -0
- package/dist/cjs/middleware/localeDetector.cjs +73 -0
- package/dist/cjs/middleware/localeDetector.cjs.map +1 -0
- package/dist/cjs/middleware/localeDetector.d.ts +6 -0
- package/dist/cjs/server/index.cjs +47 -0
- package/dist/cjs/server/index.cjs.map +1 -0
- package/dist/cjs/server/index.d.ts +10 -0
- package/dist/cjs/server/withIntlayer.cjs +76 -0
- package/dist/cjs/server/withIntlayer.cjs.map +1 -0
- package/dist/cjs/server/withIntlayer.d.ts +9 -0
- package/dist/cjs/types/NextPage.cjs +21 -0
- package/dist/cjs/types/NextPage.cjs.map +1 -0
- package/dist/cjs/types/NextPage.d.ts +13 -0
- package/dist/cjs/types/index.cjs +21 -0
- package/dist/cjs/types/index.cjs.map +1 -0
- package/dist/cjs/types/index.d.ts +4 -0
- package/dist/esm/client/index.d.mts +10 -0
- package/dist/esm/client/index.mjs +19 -0
- package/dist/esm/client/index.mjs.map +1 -0
- package/dist/esm/client/useLocale.d.mts +12 -0
- package/dist/esm/client/useLocale.mjs +37 -0
- package/dist/esm/client/useLocale.mjs.map +1 -0
- package/dist/esm/generateStaticParams.d.mts +7 -0
- package/dist/esm/generateStaticParams.mjs +5 -0
- package/dist/esm/generateStaticParams.mjs.map +1 -0
- package/dist/esm/index.d.mts +15 -0
- package/dist/esm/index.mjs +21 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/middleware/index.d.mts +2 -0
- package/dist/esm/middleware/index.mjs +2 -0
- package/dist/esm/middleware/index.mjs.map +1 -0
- package/dist/esm/middleware/intlayerMiddleware.d.mts +5 -0
- package/dist/esm/middleware/intlayerMiddleware.mjs +193 -0
- package/dist/esm/middleware/intlayerMiddleware.mjs.map +1 -0
- package/dist/esm/middleware/localeDetector.d.mts +6 -0
- package/dist/esm/middleware/localeDetector.mjs +20 -0
- package/dist/esm/middleware/localeDetector.mjs.map +1 -0
- package/dist/esm/server/index.d.mts +10 -0
- package/dist/esm/server/index.mjs +19 -0
- package/dist/esm/server/index.mjs.map +1 -0
- package/dist/esm/server/withIntlayer.d.mts +9 -0
- package/dist/esm/server/withIntlayer.mjs +40 -0
- package/dist/esm/server/withIntlayer.mjs.map +1 -0
- package/dist/esm/types/NextPage.d.mts +13 -0
- package/dist/esm/types/NextPage.mjs +1 -0
- package/dist/esm/types/NextPage.mjs.map +1 -0
- package/dist/esm/types/index.d.mts +4 -0
- package/dist/esm/types/index.mjs +1 -0
- package/dist/esm/types/index.mjs.map +1 -0
- package/package.json +105 -0
- package/src/client/index.ts +9 -0
- package/src/client/useLocale.ts +46 -0
- package/src/generateStaticParams.ts +5 -0
- package/src/index.ts +11 -0
- package/src/middleware/index.ts +1 -0
- package/src/middleware/intlayerMiddleware.ts +215 -0
- package/src/middleware/localeDetector.ts +28 -0
- package/src/server/index.ts +9 -0
- package/src/server/withIntlayer.ts +61 -0
- package/src/types/NextPage.ts +10 -0
- package/src/types/index.ts +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/middleware/localeDetector.ts"],"sourcesContent":["import { match } from '@formatjs/intl-localematcher';\nimport type { Locales } from '@intlayer/config';\nimport { getConfiguration } from '@intlayer/config/client';\nimport Negotiator from 'negotiator';\nimport type { NextRequest } from 'next/server.js';\n\nconst { locales, defaultLocale } = getConfiguration().internationalization;\n\nexport const localeDetector = (request: NextRequest): Locales => {\n const negotiatorHeaders: Record<string, string> = {};\n\n request.headers.forEach((value, key) => (negotiatorHeaders[key] = value));\n\n const languages = new Negotiator({ headers: negotiatorHeaders }).languages();\n\n // match can only use specifically formatted locales\n // https://stackoverflow.com/questions/76447732/nextjs-13-i18n-incorrect-locale-information-provided\n try {\n return match(languages, locales, defaultLocale) as Locales;\n } catch (e) {\n console.warn(\n `No valid locales in accept-language header: ${languages.join(', ')}`\n );\n console.warn(`Reverting to using defaultLocale: ${defaultLocale}`);\n\n return defaultLocale;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAAsB;AAEtB,oBAAiC;AACjC,wBAAuB;AAGvB,MAAM,EAAE,SAAS,cAAc,QAAI,gCAAiB,EAAE;AAE/C,MAAM,iBAAiB,CAAC,YAAkC;AAC/D,QAAM,oBAA4C,CAAC;AAEnD,UAAQ,QAAQ,QAAQ,CAAC,OAAO,QAAS,kBAAkB,GAAG,IAAI,KAAM;AAExE,QAAM,YAAY,IAAI,kBAAAA,QAAW,EAAE,SAAS,kBAAkB,CAAC,EAAE,UAAU;AAI3E,MAAI;AACF,eAAO,iCAAM,WAAW,SAAS,aAAa;AAAA,EAChD,SAAS,GAAG;AACV,YAAQ;AAAA,MACN,+CAA+C,UAAU,KAAK,IAAI,CAAC;AAAA,IACrE;AACA,YAAQ,KAAK,qCAAqC,aAAa,EAAE;AAEjE,WAAO;AAAA,EACT;AACF;","names":["Negotiator"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if ((from && typeof from === "object") || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, {
|
|
15
|
+
get: () => from[key],
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toCommonJS = (mod) =>
|
|
22
|
+
__copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
+
var server_exports = {};
|
|
24
|
+
__export(server_exports, {
|
|
25
|
+
LocaleServerContext: () => import_server.LocaleServerContext,
|
|
26
|
+
LocaleServerContextProvider: () => import_server.LocaleServerContextProvider,
|
|
27
|
+
getLocaleContent: () => import_server.getLocaleContent,
|
|
28
|
+
locale: () => import_server.locale,
|
|
29
|
+
useIntlayer: () => import_server.useIntlayer,
|
|
30
|
+
useTraduction: () => import_server.useTraduction,
|
|
31
|
+
withIntlayer: () => import_withIntlayer.withIntlayer,
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(server_exports);
|
|
34
|
+
var import_server = require("react-intlayer/server");
|
|
35
|
+
var import_withIntlayer = require("./withIntlayer.cjs");
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 &&
|
|
38
|
+
(module.exports = {
|
|
39
|
+
LocaleServerContext,
|
|
40
|
+
LocaleServerContextProvider,
|
|
41
|
+
getLocaleContent,
|
|
42
|
+
locale,
|
|
43
|
+
useIntlayer,
|
|
44
|
+
useTraduction,
|
|
45
|
+
withIntlayer,
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/server/index.ts"],"sourcesContent":["export {\n getLocaleContent,\n useTraduction,\n LocaleServerContext,\n LocaleServerContextProvider,\n locale,\n useIntlayer,\n} from 'react-intlayer/server';\nexport { withIntlayer } from './withIntlayer';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAOO;AACP,0BAA6B;","names":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if ((from && typeof from === "object") || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, {
|
|
15
|
+
get: () => from[key],
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toCommonJS = (mod) =>
|
|
22
|
+
__copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
+
var withIntlayer_exports = {};
|
|
24
|
+
__export(withIntlayer_exports, {
|
|
25
|
+
withIntlayer: () => withIntlayer,
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(withIntlayer_exports);
|
|
28
|
+
var import_path = require("path");
|
|
29
|
+
var import_config = require("@intlayer/config");
|
|
30
|
+
const intlayerConfig = (0, import_config.getConfiguration)({
|
|
31
|
+
verbose: true,
|
|
32
|
+
});
|
|
33
|
+
const env = (0, import_config.formatEnvVariable)("NEXT_PUBLIC_INTLAYER_");
|
|
34
|
+
const { mainDir, baseDir } = intlayerConfig.content;
|
|
35
|
+
const mergeEnvVariable = (nextEnv = {}) => Object.assign({}, nextEnv, env);
|
|
36
|
+
const mergeStats = (nextStats = {}) =>
|
|
37
|
+
Object.assign({}, nextStats, {
|
|
38
|
+
warnings: false,
|
|
39
|
+
});
|
|
40
|
+
const withIntlayer =
|
|
41
|
+
(_pluginOptions = {}) =>
|
|
42
|
+
(nextConfig = {}) => {
|
|
43
|
+
if (typeof nextConfig !== "object") nextConfig = {};
|
|
44
|
+
return Object.assign({}, nextConfig, {
|
|
45
|
+
env: mergeEnvVariable(nextConfig.env),
|
|
46
|
+
stats: mergeStats(nextConfig.stats),
|
|
47
|
+
webpack: (config) => {
|
|
48
|
+
const dictionariesPath = (0, import_path.join)(
|
|
49
|
+
mainDir,
|
|
50
|
+
"dictionaries.cjs"
|
|
51
|
+
);
|
|
52
|
+
const relativeDictionariesPath = (0, import_path.relative)(
|
|
53
|
+
baseDir,
|
|
54
|
+
dictionariesPath
|
|
55
|
+
);
|
|
56
|
+
config.externals.push({
|
|
57
|
+
esbuild: "esbuild",
|
|
58
|
+
module: "module",
|
|
59
|
+
fs: "fs",
|
|
60
|
+
});
|
|
61
|
+
config.resolve.alias["@intlayer/dictionaries-entry"] = (0,
|
|
62
|
+
import_path.resolve)(relativeDictionariesPath);
|
|
63
|
+
config.module.rules.push({
|
|
64
|
+
test: /\.node$/,
|
|
65
|
+
loader: "node-loader",
|
|
66
|
+
});
|
|
67
|
+
return config;
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
72
|
+
0 &&
|
|
73
|
+
(module.exports = {
|
|
74
|
+
withIntlayer,
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=withIntlayer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/server/withIntlayer.ts"],"sourcesContent":["import { resolve, relative, join } from 'path';\nimport { getConfiguration, formatEnvVariable } from '@intlayer/config';\nimport type { NextConfig } from 'next';\nimport type { NextJsWebpackConfig } from 'next/dist/server/config-shared';\n\ntype PluginOptions = {\n // TODO: add options\n};\n\nconst intlayerConfig = getConfiguration({\n verbose: true,\n});\n\n// Set all configuration values as environment variables\nconst env = formatEnvVariable('NEXT_PUBLIC_INTLAYER_');\nconst { mainDir, baseDir } = intlayerConfig.content;\n\nconst mergeEnvVariable = (\n nextEnv: Record<string, unknown> | undefined = {}\n): Record<string, string> => Object.assign({}, nextEnv, env);\n\nconst mergeStats = (\n nextStats: Record<string, unknown> | undefined = {}\n): Record<string, unknown> =>\n Object.assign({}, nextStats, {\n warnings: false,\n });\n\nexport const withIntlayer =\n (_pluginOptions: PluginOptions = {}) =>\n (nextConfig: Partial<NextConfig> = {}): Partial<NextConfig> => {\n if (typeof nextConfig !== 'object') nextConfig = {};\n\n return Object.assign({}, nextConfig, {\n env: mergeEnvVariable(nextConfig.env),\n\n stats: mergeStats(nextConfig.stats),\n\n webpack: (config: Parameters<NextJsWebpackConfig>['0']) => {\n const dictionariesPath = join(mainDir, 'dictionaries.cjs');\n const relativeDictionariesPath = relative(baseDir, dictionariesPath);\n\n config.externals.push({\n esbuild: 'esbuild',\n module: 'module',\n fs: 'fs',\n });\n\n config.resolve.alias['@intlayer/dictionaries-entry'] = resolve(\n relativeDictionariesPath\n );\n\n config.module.rules.push({\n test: /\\.node$/,\n loader: 'node-loader',\n });\n\n return config;\n },\n });\n };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwC;AACxC,oBAAoD;AAQpD,MAAM,qBAAiB,gCAAiB;AAAA,EACtC,SAAS;AACX,CAAC;AAGD,MAAM,UAAM,iCAAkB,uBAAuB;AACrD,MAAM,EAAE,SAAS,QAAQ,IAAI,eAAe;AAE5C,MAAM,mBAAmB,CACvB,UAA+C,CAAC,MACrB,OAAO,OAAO,CAAC,GAAG,SAAS,GAAG;AAE3D,MAAM,aAAa,CACjB,YAAiD,CAAC,MAElD,OAAO,OAAO,CAAC,GAAG,WAAW;AAAA,EAC3B,UAAU;AACZ,CAAC;AAEI,MAAM,eACX,CAAC,iBAAgC,CAAC,MAClC,CAAC,aAAkC,CAAC,MAA2B;AAC7D,MAAI,OAAO,eAAe;AAAU,iBAAa,CAAC;AAElD,SAAO,OAAO,OAAO,CAAC,GAAG,YAAY;AAAA,IACnC,KAAK,iBAAiB,WAAW,GAAG;AAAA,IAEpC,OAAO,WAAW,WAAW,KAAK;AAAA,IAElC,SAAS,CAAC,WAAiD;AACzD,YAAM,uBAAmB,kBAAK,SAAS,kBAAkB;AACzD,YAAM,+BAA2B,sBAAS,SAAS,gBAAgB;AAEnE,aAAO,UAAU,KAAK;AAAA,QACpB,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,IAAI;AAAA,MACN,CAAC;AAED,aAAO,QAAQ,MAAM,8BAA8B,QAAI;AAAA,QACrD;AAAA,MACF;AAEA,aAAO,OAAO,MAAM,KAAK;AAAA,QACvB,MAAM;AAAA,QACN,QAAQ;AAAA,MACV,CAAC;AAED,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if ((from && typeof from === "object") || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, {
|
|
11
|
+
get: () => from[key],
|
|
12
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) =>
|
|
18
|
+
__copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var NextPage_exports = {};
|
|
20
|
+
module.exports = __toCommonJS(NextPage_exports);
|
|
21
|
+
//# sourceMappingURL=NextPage.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/types/NextPage.ts"],"sourcesContent":["import type { Locales } from 'intlayer';\nimport type { NextPage } from 'next';\nimport type { PropsWithChildren } from 'react';\n\nexport type LocalParams = {\n params: { locale: Locales };\n};\n\nexport type NextPageIntlayer = NextPage<LocalParams>;\nexport type NextLayoutIntlayer = NextPage<PropsWithChildren<LocalParams>>;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Locales } from "intlayer";
|
|
2
|
+
import { NextPage } from "next";
|
|
3
|
+
import { PropsWithChildren } from "react";
|
|
4
|
+
|
|
5
|
+
type LocalParams = {
|
|
6
|
+
params: {
|
|
7
|
+
locale: Locales;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
type NextPageIntlayer = NextPage<LocalParams>;
|
|
11
|
+
type NextLayoutIntlayer = NextPage<PropsWithChildren<LocalParams>>;
|
|
12
|
+
|
|
13
|
+
export type { LocalParams, NextLayoutIntlayer, NextPageIntlayer };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if ((from && typeof from === "object") || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, {
|
|
11
|
+
get: () => from[key],
|
|
12
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) =>
|
|
18
|
+
__copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var types_exports = {};
|
|
20
|
+
module.exports = __toCommonJS(types_exports);
|
|
21
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/types/index.ts"],"sourcesContent":["export type { LocalParams, NextPageIntlayer } from './NextPage';\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getTranslation,
|
|
3
|
+
LocaleClientContextProvider,
|
|
4
|
+
LocaleClientContext,
|
|
5
|
+
useIntlayer,
|
|
6
|
+
useTraduction,
|
|
7
|
+
useLocaleCookie,
|
|
8
|
+
} from "react-intlayer";
|
|
9
|
+
import { useLocale } from "./useLocale.mjs";
|
|
10
|
+
export {
|
|
11
|
+
LocaleClientContext,
|
|
12
|
+
LocaleClientContextProvider,
|
|
13
|
+
getTranslation,
|
|
14
|
+
useIntlayer,
|
|
15
|
+
useLocale,
|
|
16
|
+
useLocaleCookie,
|
|
17
|
+
useTraduction,
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/client/index.ts"],"sourcesContent":["export {\n getTranslation,\n LocaleClientContextProvider,\n LocaleClientContext,\n useIntlayer,\n useTraduction,\n useLocaleCookie,\n} from 'react-intlayer';\nexport { useLocale } from './useLocale';\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,iBAAiB;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "react-intlayer";
|
|
2
|
+
import { Locales } from "intlayer";
|
|
3
|
+
|
|
4
|
+
declare const useLocale: () => {
|
|
5
|
+
setLocale: (locale: Locales) => void;
|
|
6
|
+
locale: Locales;
|
|
7
|
+
defaultLocale: Locales;
|
|
8
|
+
availableLocales: Locales[];
|
|
9
|
+
localeList: Locales[];
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { useLocale };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { intlayerMiddlewareConfiguration } from "@intlayer/config/client";
|
|
2
|
+
import { usePathname, useRouter } from "next/navigation.js";
|
|
3
|
+
import { useLocale as useReactLocale, useLocaleCookie } from "react-intlayer";
|
|
4
|
+
const { prefixDefault } = intlayerMiddlewareConfiguration;
|
|
5
|
+
const useLocale = () => {
|
|
6
|
+
const { setLocaleCookie } = useLocaleCookie();
|
|
7
|
+
const reactLocaleHook = useReactLocale();
|
|
8
|
+
const router = useRouter();
|
|
9
|
+
const pathname = usePathname();
|
|
10
|
+
const {
|
|
11
|
+
defaultLocale,
|
|
12
|
+
availableLocales,
|
|
13
|
+
locale: currentLocale,
|
|
14
|
+
} = reactLocaleHook;
|
|
15
|
+
const setLocale = (locale) => {
|
|
16
|
+
if (currentLocale === locale) return;
|
|
17
|
+
if (!availableLocales.includes(locale)) {
|
|
18
|
+
console.error(`Locale ${locale} is not available`);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
setLocaleCookie(locale);
|
|
22
|
+
const pathWithoutLocale =
|
|
23
|
+
!prefixDefault && currentLocale === defaultLocale
|
|
24
|
+
? pathname
|
|
25
|
+
: pathname.slice(`/${currentLocale}`.length) || "/";
|
|
26
|
+
if (!prefixDefault && locale === defaultLocale) {
|
|
27
|
+
return router.push(pathWithoutLocale);
|
|
28
|
+
}
|
|
29
|
+
return router.push(`/${locale}${pathWithoutLocale}`);
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
...reactLocaleHook,
|
|
33
|
+
setLocale,
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export { useLocale };
|
|
37
|
+
//# sourceMappingURL=useLocale.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/client/useLocale.ts"],"sourcesContent":["import { intlayerMiddlewareConfiguration } from '@intlayer/config/client';\nimport type { Locales } from 'intlayer';\nimport { usePathname, useRouter } from 'next/navigation.js';\nimport { useLocale as useReactLocale, useLocaleCookie } from 'react-intlayer';\n\nconst { prefixDefault } = intlayerMiddlewareConfiguration;\n\nexport const useLocale = () => {\n const { setLocaleCookie } = useLocaleCookie();\n const reactLocaleHook = useReactLocale();\n const router = useRouter();\n const pathname = usePathname();\n\n const {\n defaultLocale,\n availableLocales,\n locale: currentLocale,\n } = reactLocaleHook;\n\n const setLocale = (locale: Locales) => {\n if (currentLocale === locale) return;\n\n if (!availableLocales.includes(locale)) {\n console.error(`Locale ${locale} is not available`);\n return;\n }\n\n setLocaleCookie(locale);\n\n const pathWithoutLocale =\n !prefixDefault && currentLocale === defaultLocale\n ? pathname\n : pathname.slice(`/${currentLocale}`.length) || '/';\n\n if (!prefixDefault && locale === defaultLocale) {\n return router.push(pathWithoutLocale);\n }\n\n return router.push(`/${locale}${pathWithoutLocale}`);\n };\n\n return {\n ...reactLocaleHook,\n setLocale,\n };\n};\n"],"mappings":"AAAA,SAAS,uCAAuC;AAEhD,SAAS,aAAa,iBAAiB;AACvC,SAAS,aAAa,gBAAgB,uBAAuB;AAE7D,MAAM,EAAE,cAAc,IAAI;AAEnB,MAAM,YAAY,MAAM;AAC7B,QAAM,EAAE,gBAAgB,IAAI,gBAAgB;AAC5C,QAAM,kBAAkB,eAAe;AACvC,QAAM,SAAS,UAAU;AACzB,QAAM,WAAW,YAAY;AAE7B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV,IAAI;AAEJ,QAAM,YAAY,CAAC,WAAoB;AACrC,QAAI,kBAAkB;AAAQ;AAE9B,QAAI,CAAC,iBAAiB,SAAS,MAAM,GAAG;AACtC,cAAQ,MAAM,UAAU,MAAM,mBAAmB;AACjD;AAAA,IACF;AAEA,oBAAgB,MAAM;AAEtB,UAAM,oBACJ,CAAC,iBAAiB,kBAAkB,gBAChC,WACA,SAAS,MAAM,IAAI,aAAa,GAAG,MAAM,KAAK;AAEpD,QAAI,CAAC,iBAAiB,WAAW,eAAe;AAC9C,aAAO,OAAO,KAAK,iBAAiB;AAAA,IACtC;AAEA,WAAO,OAAO,KAAK,IAAI,MAAM,GAAG,iBAAiB,EAAE;AAAA,EACrD;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { intlayerIntlConfiguration } from "@intlayer/config/client";
|
|
2
|
+
const { locales } = intlayerIntlConfiguration;
|
|
3
|
+
const generateStaticParams = () => locales.map((locale) => ({ locale }));
|
|
4
|
+
export { generateStaticParams };
|
|
5
|
+
//# sourceMappingURL=generateStaticParams.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/generateStaticParams.ts"],"sourcesContent":["import { intlayerIntlConfiguration } from '@intlayer/config/client';\n\nconst { locales } = intlayerIntlConfiguration;\n\nexport const generateStaticParams = () => locales.map((locale) => ({ locale }));\n"],"mappings":"AAAA,SAAS,iCAAiC;AAE1C,MAAM,EAAE,QAAQ,IAAI;AAEb,MAAM,uBAAuB,MAAM,QAAQ,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export {
|
|
2
|
+
LocaleClientContext,
|
|
3
|
+
LocaleClientContextProvider,
|
|
4
|
+
getTranslation,
|
|
5
|
+
useIntlayer,
|
|
6
|
+
useLocaleCookie,
|
|
7
|
+
useTraduction,
|
|
8
|
+
} from "react-intlayer";
|
|
9
|
+
export { generateStaticParams } from "./generateStaticParams.mjs";
|
|
10
|
+
export { LocalParams, NextPageIntlayer } from "./types/NextPage.mjs";
|
|
11
|
+
export { useLocale } from "./client/useLocale.mjs";
|
|
12
|
+
import "@intlayer/config/client";
|
|
13
|
+
import "intlayer";
|
|
14
|
+
import "next";
|
|
15
|
+
import "react";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getTranslation,
|
|
3
|
+
LocaleClientContextProvider,
|
|
4
|
+
LocaleClientContext,
|
|
5
|
+
useIntlayer,
|
|
6
|
+
useTraduction,
|
|
7
|
+
useLocaleCookie,
|
|
8
|
+
} from "react-intlayer";
|
|
9
|
+
import { generateStaticParams } from "./generateStaticParams.mjs";
|
|
10
|
+
import { useLocale } from "./client/useLocale.mjs";
|
|
11
|
+
export {
|
|
12
|
+
LocaleClientContext,
|
|
13
|
+
LocaleClientContextProvider,
|
|
14
|
+
generateStaticParams,
|
|
15
|
+
getTranslation,
|
|
16
|
+
useIntlayer,
|
|
17
|
+
useLocale,
|
|
18
|
+
useLocaleCookie,
|
|
19
|
+
useTraduction,
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export {\n getTranslation,\n LocaleClientContextProvider,\n LocaleClientContext,\n useIntlayer,\n useTraduction,\n useLocaleCookie,\n} from 'react-intlayer';\nexport { generateStaticParams } from './generateStaticParams';\nexport type { LocalParams, NextPageIntlayer } from './types/index';\nexport { useLocale } from './client/useLocale';\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,4BAA4B;AAErC,SAAS,iBAAiB;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/middleware/index.ts"],"sourcesContent":["export * from './intlayerMiddleware';\n"],"mappings":"AAAA,cAAc;","names":[]}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { intlayerConfiguration } from "@intlayer/config/client";
|
|
2
|
+
import { NextResponse } from "next/server";
|
|
3
|
+
import { localeDetector } from "./localeDetector.mjs";
|
|
4
|
+
const { internationalization, middleware } = intlayerConfiguration;
|
|
5
|
+
const { locales, defaultLocale } = internationalization;
|
|
6
|
+
const {
|
|
7
|
+
headerName,
|
|
8
|
+
cookieName,
|
|
9
|
+
prefixDefault,
|
|
10
|
+
basePath,
|
|
11
|
+
serverSetCookie,
|
|
12
|
+
noPrefix,
|
|
13
|
+
} = middleware;
|
|
14
|
+
const intlayerMiddleware = (request) => {
|
|
15
|
+
const pathname = request.nextUrl.pathname;
|
|
16
|
+
const cookieLocale = getCookieLocale(request);
|
|
17
|
+
const basePathTrailingSlash = basePath.endsWith("/");
|
|
18
|
+
if (noPrefix) {
|
|
19
|
+
return handleNoPrefix(
|
|
20
|
+
request,
|
|
21
|
+
cookieLocale,
|
|
22
|
+
pathname,
|
|
23
|
+
basePathTrailingSlash
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
const pathLocale = getPathLocale(pathname);
|
|
27
|
+
return handlePrefix(
|
|
28
|
+
request,
|
|
29
|
+
cookieLocale,
|
|
30
|
+
pathLocale,
|
|
31
|
+
pathname,
|
|
32
|
+
basePathTrailingSlash
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
const getCookieLocale = (request) => {
|
|
36
|
+
if (!cookieName) return void 0;
|
|
37
|
+
const cookieValue = request.cookies.get(cookieName)?.value;
|
|
38
|
+
if (cookieValue && locales.includes(cookieValue)) {
|
|
39
|
+
return cookieValue;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const handleNoPrefix = (
|
|
43
|
+
request,
|
|
44
|
+
cookieLocale,
|
|
45
|
+
pathname,
|
|
46
|
+
basePathTrailingSlash
|
|
47
|
+
) => {
|
|
48
|
+
const locale = cookieLocale ?? defaultLocale;
|
|
49
|
+
const newPath = constructPath(
|
|
50
|
+
locale,
|
|
51
|
+
pathname,
|
|
52
|
+
basePath,
|
|
53
|
+
basePathTrailingSlash
|
|
54
|
+
);
|
|
55
|
+
return rewriteUrl(request, newPath, locale);
|
|
56
|
+
};
|
|
57
|
+
const getPathLocale = (pathname) =>
|
|
58
|
+
locales.find(
|
|
59
|
+
(locale) => pathname.startsWith(`/${locale}/`) || pathname === `/${locale}`
|
|
60
|
+
);
|
|
61
|
+
const handlePrefix = (
|
|
62
|
+
request,
|
|
63
|
+
cookieLocale,
|
|
64
|
+
pathLocale,
|
|
65
|
+
pathname,
|
|
66
|
+
basePathTrailingSlash
|
|
67
|
+
) => {
|
|
68
|
+
if (!pathLocale) {
|
|
69
|
+
return handleMissingPathLocale(
|
|
70
|
+
request,
|
|
71
|
+
cookieLocale,
|
|
72
|
+
pathname,
|
|
73
|
+
basePathTrailingSlash
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
return handleExistingPathLocale(
|
|
77
|
+
request,
|
|
78
|
+
cookieLocale,
|
|
79
|
+
pathLocale,
|
|
80
|
+
pathname,
|
|
81
|
+
basePathTrailingSlash
|
|
82
|
+
);
|
|
83
|
+
};
|
|
84
|
+
const handleMissingPathLocale = (
|
|
85
|
+
request,
|
|
86
|
+
cookieLocale,
|
|
87
|
+
pathname,
|
|
88
|
+
basePathTrailingSlash
|
|
89
|
+
) => {
|
|
90
|
+
let locale = cookieLocale ?? localeDetector?.(request) ?? defaultLocale;
|
|
91
|
+
if (!locales.includes(locale)) {
|
|
92
|
+
console.warn(
|
|
93
|
+
"The localeDetector callback must return a locale included in your locales array. Reverting to using defaultLocale."
|
|
94
|
+
);
|
|
95
|
+
locale = defaultLocale;
|
|
96
|
+
}
|
|
97
|
+
const newPath = constructPath(
|
|
98
|
+
locale,
|
|
99
|
+
pathname,
|
|
100
|
+
basePath,
|
|
101
|
+
basePathTrailingSlash
|
|
102
|
+
);
|
|
103
|
+
return prefixDefault || locale !== defaultLocale
|
|
104
|
+
? redirectUrl(request, newPath)
|
|
105
|
+
: rewriteUrl(request, newPath, locale);
|
|
106
|
+
};
|
|
107
|
+
const handleExistingPathLocale = (
|
|
108
|
+
request,
|
|
109
|
+
cookieLocale,
|
|
110
|
+
pathLocale,
|
|
111
|
+
pathname,
|
|
112
|
+
basePathTrailingSlash
|
|
113
|
+
) => {
|
|
114
|
+
if (
|
|
115
|
+
cookieLocale &&
|
|
116
|
+
cookieLocale !== pathLocale &&
|
|
117
|
+
serverSetCookie !== "always"
|
|
118
|
+
) {
|
|
119
|
+
const newPath = handleCookieLocaleMismatch(
|
|
120
|
+
request,
|
|
121
|
+
pathname,
|
|
122
|
+
pathLocale,
|
|
123
|
+
cookieLocale,
|
|
124
|
+
basePath,
|
|
125
|
+
basePathTrailingSlash
|
|
126
|
+
);
|
|
127
|
+
return redirectUrl(request, newPath);
|
|
128
|
+
}
|
|
129
|
+
return handleDefaultLocaleRedirect(
|
|
130
|
+
request,
|
|
131
|
+
pathLocale,
|
|
132
|
+
pathname,
|
|
133
|
+
basePathTrailingSlash
|
|
134
|
+
);
|
|
135
|
+
};
|
|
136
|
+
const handleCookieLocaleMismatch = (
|
|
137
|
+
request,
|
|
138
|
+
pathname,
|
|
139
|
+
pathLocale,
|
|
140
|
+
cookieLocale,
|
|
141
|
+
basePath2,
|
|
142
|
+
basePathTrailingSlash
|
|
143
|
+
) => {
|
|
144
|
+
const newPath = pathname.replace(`/${pathLocale}`, `/${cookieLocale}`);
|
|
145
|
+
return constructPath(
|
|
146
|
+
cookieLocale,
|
|
147
|
+
newPath,
|
|
148
|
+
basePath2,
|
|
149
|
+
basePathTrailingSlash,
|
|
150
|
+
request.nextUrl.search
|
|
151
|
+
);
|
|
152
|
+
};
|
|
153
|
+
const handleDefaultLocaleRedirect = (
|
|
154
|
+
request,
|
|
155
|
+
pathLocale,
|
|
156
|
+
pathname,
|
|
157
|
+
basePathTrailingSlash
|
|
158
|
+
) => {
|
|
159
|
+
if (!prefixDefault && pathLocale === defaultLocale) {
|
|
160
|
+
let pathWithoutLocale = pathname.slice(`/${pathLocale}`.length) || "/";
|
|
161
|
+
if (basePathTrailingSlash) {
|
|
162
|
+
pathWithoutLocale = pathWithoutLocale.slice(1);
|
|
163
|
+
}
|
|
164
|
+
if (request.nextUrl.search) {
|
|
165
|
+
pathWithoutLocale += request.nextUrl.search;
|
|
166
|
+
}
|
|
167
|
+
return rewriteUrl(request, `${basePath}${pathWithoutLocale}`, pathLocale);
|
|
168
|
+
}
|
|
169
|
+
return rewriteUrl(request, pathname, pathLocale);
|
|
170
|
+
};
|
|
171
|
+
const constructPath = (
|
|
172
|
+
locale,
|
|
173
|
+
path,
|
|
174
|
+
basePath2,
|
|
175
|
+
basePathTrailingSlash,
|
|
176
|
+
search
|
|
177
|
+
) => {
|
|
178
|
+
let newPath = `${locale}${path}`;
|
|
179
|
+
newPath = `${basePath2}${basePathTrailingSlash ? "" : "/"}${newPath}`;
|
|
180
|
+
if (search) {
|
|
181
|
+
newPath += search;
|
|
182
|
+
}
|
|
183
|
+
return newPath;
|
|
184
|
+
};
|
|
185
|
+
const rewriteUrl = (request, newPath, locale) => {
|
|
186
|
+
const response = NextResponse.rewrite(new URL(newPath, request.url));
|
|
187
|
+
response.headers.set(headerName, locale);
|
|
188
|
+
return response;
|
|
189
|
+
};
|
|
190
|
+
const redirectUrl = (request, newPath) =>
|
|
191
|
+
NextResponse.redirect(new URL(newPath, request.url));
|
|
192
|
+
export { intlayerMiddleware };
|
|
193
|
+
//# sourceMappingURL=intlayerMiddleware.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/middleware/intlayerMiddleware.ts"],"sourcesContent":["import { type Locales, intlayerConfiguration } from '@intlayer/config/client';\nimport { type NextRequest, NextResponse } from 'next/server';\nimport { localeDetector } from './localeDetector';\n\nconst { internationalization, middleware } = intlayerConfiguration;\nconst { locales, defaultLocale } = internationalization;\nconst {\n headerName,\n cookieName,\n prefixDefault,\n basePath,\n serverSetCookie,\n noPrefix,\n} = middleware;\n\nexport const intlayerMiddleware = (request: NextRequest): NextResponse => {\n const pathname = request.nextUrl.pathname;\n const cookieLocale = getCookieLocale(request);\n const basePathTrailingSlash = basePath.endsWith('/');\n\n if (noPrefix) {\n return handleNoPrefix(\n request,\n cookieLocale,\n pathname,\n basePathTrailingSlash\n );\n }\n\n const pathLocale = getPathLocale(pathname);\n return handlePrefix(\n request,\n cookieLocale,\n pathLocale,\n pathname,\n basePathTrailingSlash\n );\n};\n\nconst getCookieLocale = (request: NextRequest): Locales | undefined => {\n if (!cookieName) return undefined;\n const cookieValue = request.cookies.get(cookieName)?.value as Locales;\n if (cookieValue && locales.includes(cookieValue)) {\n return cookieValue;\n }\n};\n\nconst handleNoPrefix = (\n request: NextRequest,\n cookieLocale: Locales | undefined,\n pathname: string,\n basePathTrailingSlash: boolean\n): NextResponse => {\n const locale = cookieLocale ?? defaultLocale;\n const newPath = constructPath(\n locale,\n pathname,\n basePath,\n basePathTrailingSlash\n );\n return rewriteUrl(request, newPath, locale);\n};\n\nconst getPathLocale = (pathname: string): Locales | undefined =>\n locales.find(\n (locale) => pathname.startsWith(`/${locale}/`) || pathname === `/${locale}`\n );\n\nconst handlePrefix = (\n request: NextRequest,\n cookieLocale: Locales | undefined,\n pathLocale: Locales | undefined,\n pathname: string,\n basePathTrailingSlash: boolean\n): NextResponse => {\n if (!pathLocale) {\n return handleMissingPathLocale(\n request,\n cookieLocale,\n pathname,\n basePathTrailingSlash\n );\n }\n return handleExistingPathLocale(\n request,\n cookieLocale,\n pathLocale,\n pathname,\n basePathTrailingSlash\n );\n};\n\nconst handleMissingPathLocale = (\n request: NextRequest,\n cookieLocale: Locales | undefined,\n pathname: string,\n basePathTrailingSlash: boolean\n): NextResponse => {\n let locale = cookieLocale ?? localeDetector?.(request) ?? defaultLocale;\n if (!locales.includes(locale)) {\n console.warn(\n 'The localeDetector callback must return a locale included in your locales array. Reverting to using defaultLocale.'\n );\n locale = defaultLocale;\n }\n const newPath = constructPath(\n locale,\n pathname,\n basePath,\n basePathTrailingSlash\n );\n return prefixDefault || locale !== defaultLocale\n ? redirectUrl(request, newPath)\n : rewriteUrl(request, newPath, locale);\n};\n\nconst handleExistingPathLocale = (\n request: NextRequest,\n cookieLocale: Locales | undefined,\n pathLocale: Locales,\n pathname: string,\n basePathTrailingSlash: boolean\n): NextResponse => {\n if (\n cookieLocale &&\n cookieLocale !== pathLocale &&\n serverSetCookie !== 'always'\n ) {\n const newPath = handleCookieLocaleMismatch(\n request,\n pathname,\n pathLocale,\n cookieLocale,\n basePath,\n basePathTrailingSlash\n );\n return redirectUrl(request, newPath);\n }\n\n return handleDefaultLocaleRedirect(\n request,\n pathLocale,\n pathname,\n basePathTrailingSlash\n );\n};\n\nconst handleCookieLocaleMismatch = (\n request: NextRequest,\n\n pathname: string,\n pathLocale: Locales,\n cookieLocale: Locales,\n basePath: string,\n basePathTrailingSlash: boolean\n): string => {\n const newPath = pathname.replace(`/${pathLocale}`, `/${cookieLocale}`);\n return constructPath(\n cookieLocale,\n newPath,\n basePath,\n basePathTrailingSlash,\n request.nextUrl.search\n );\n};\n\nconst handleDefaultLocaleRedirect = (\n request: NextRequest,\n pathLocale: Locales,\n pathname: string,\n basePathTrailingSlash: boolean\n): NextResponse => {\n if (!prefixDefault && pathLocale === defaultLocale) {\n let pathWithoutLocale = pathname.slice(`/${pathLocale}`.length) || '/';\n\n if (basePathTrailingSlash) {\n pathWithoutLocale = pathWithoutLocale.slice(1);\n }\n\n if (request.nextUrl.search) {\n pathWithoutLocale += request.nextUrl.search;\n }\n\n return rewriteUrl(request, `${basePath}${pathWithoutLocale}`, pathLocale);\n }\n return rewriteUrl(request, pathname, pathLocale);\n};\n\nconst constructPath = (\n locale: Locales,\n path: string,\n basePath: string,\n basePathTrailingSlash: boolean,\n search?: string\n): string => {\n let newPath = `${locale}${path}`;\n newPath = `${basePath}${basePathTrailingSlash ? '' : '/'}${newPath}`;\n if (search) {\n newPath += search;\n }\n return newPath;\n};\n\nconst rewriteUrl = (\n request: NextRequest,\n newPath: string,\n locale: Locales\n): NextResponse => {\n const response = NextResponse.rewrite(new URL(newPath, request.url));\n response.headers.set(headerName, locale);\n return response;\n};\n\nconst redirectUrl = (request: NextRequest, newPath: string): NextResponse =>\n NextResponse.redirect(new URL(newPath, request.url));\n"],"mappings":"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","names":["basePath"]}
|