next-translate-plugin 2.0.5 → 2.3.0-canary.1
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/lib/cjs/index.js +19 -37
- package/lib/cjs/loader.js +9 -6
- package/lib/cjs/templateAppDir.js +2 -2
- package/lib/cjs/utils.js +25 -1
- package/lib/esm/index.js +20 -38
- package/lib/esm/loader.js +9 -6
- package/lib/esm/templateAppDir.js +2 -2
- package/lib/esm/utils.js +22 -0
- package/package.json +2 -2
- package/templateAppDir.d.ts +2 -2
- package/types.d.ts +2 -2
- package/utils.d.ts +2 -0
package/lib/cjs/index.js
CHANGED
|
@@ -29,54 +29,36 @@ var fs_1 = __importDefault(require("fs"));
|
|
|
29
29
|
var path_1 = __importDefault(require("path"));
|
|
30
30
|
var utils_1 = require("./utils");
|
|
31
31
|
var test = /\.(tsx|ts|js|mjs|jsx)$/;
|
|
32
|
-
var appDirNext13 = [
|
|
33
|
-
'app',
|
|
34
|
-
'src/app',
|
|
35
|
-
'app/app',
|
|
36
|
-
'integrations/app'
|
|
37
|
-
];
|
|
38
|
-
var possiblePageDirs = [
|
|
39
|
-
'pages',
|
|
40
|
-
'src/pages',
|
|
41
|
-
'app/pages',
|
|
42
|
-
'integrations/pages',
|
|
43
|
-
];
|
|
44
32
|
function nextTranslate(nextConfig) {
|
|
45
|
-
var _a;
|
|
46
33
|
if (nextConfig === void 0) { nextConfig = {}; }
|
|
47
34
|
var basePath = pkgDir();
|
|
48
|
-
var isAppDirNext13 = (_a = nextConfig.experimental) === null || _a === void 0 ? void 0 : _a.appDir;
|
|
49
|
-
var dirs = isAppDirNext13 ? appDirNext13 : possiblePageDirs;
|
|
50
35
|
var dir = path_1.default.resolve(path_1.default.relative(basePath, process.env.NEXT_TRANSLATE_PATH || '.'));
|
|
51
36
|
var nextConfigI18n = nextConfig.i18n || {};
|
|
52
|
-
var
|
|
37
|
+
var _a = require(path_1.default.join(dir, 'i18n')), _b = _a.locales, locales = _b === void 0 ? nextConfigI18n.locales || [] : _b, _c = _a.defaultLocale, defaultLocale = _c === void 0 ? nextConfigI18n.defaultLocale || 'en' : _c, _d = _a.domains, domains = _d === void 0 ? nextConfigI18n.domains : _d, _e = _a.localeDetection, localeDetection = _e === void 0 ? nextConfigI18n.localeDetection : _e, _f = _a.loader, loader = _f === void 0 ? true : _f, pagesInDir = _a.pagesInDir, restI18n = __rest(_a, ["locales", "defaultLocale", "domains", "localeDetection", "loader", "pagesInDir"]);
|
|
53
38
|
var nextConfigWithI18n = __assign(__assign({}, nextConfig), { i18n: {
|
|
54
39
|
locales: locales,
|
|
55
40
|
defaultLocale: defaultLocale,
|
|
56
41
|
domains: domains,
|
|
57
42
|
localeDetection: localeDetection,
|
|
58
43
|
} });
|
|
44
|
+
var pagesFolder = (0, utils_1.calculatePageDir)('pages', pagesInDir, dir);
|
|
45
|
+
var appFolder = (0, utils_1.calculatePageDir)('app', pagesInDir, dir);
|
|
59
46
|
var hasGetInitialPropsOnAppJs = false;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
var possiblePageDir = dirs_1[_i];
|
|
63
|
-
if (fs_1.default.existsSync(path_1.default.join(dir, possiblePageDir))) {
|
|
64
|
-
pagesInDir = possiblePageDir;
|
|
65
|
-
break;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
if (!pagesInDir || !fs_1.default.existsSync(path_1.default.join(dir, pagesInDir))) {
|
|
47
|
+
var hasAppJs = false;
|
|
48
|
+
if (!(0, utils_1.existPages)(dir, pagesFolder) && !(0, utils_1.existPages)(dir, appFolder)) {
|
|
70
49
|
return nextConfigWithI18n;
|
|
71
50
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
51
|
+
if (pagesFolder) {
|
|
52
|
+
var pagesPath = path_1.default.join(dir, pagesFolder);
|
|
53
|
+
var app = fs_1.default.readdirSync(pagesPath).find(function (page) { return page.startsWith('_app.'); });
|
|
54
|
+
if (app) {
|
|
55
|
+
var appPkg = (0, utils_1.parseFile)(dir, path_1.default.join(pagesPath, app));
|
|
56
|
+
var defaultExport = (0, utils_1.getDefaultExport)(appPkg);
|
|
57
|
+
hasAppJs = true;
|
|
58
|
+
if (defaultExport) {
|
|
59
|
+
var isGetInitialProps = (0, utils_1.hasStaticName)(appPkg, defaultExport, 'getInitialProps');
|
|
60
|
+
hasGetInitialPropsOnAppJs = isGetInitialProps || (0, utils_1.hasHOC)(appPkg);
|
|
61
|
+
}
|
|
80
62
|
}
|
|
81
63
|
}
|
|
82
64
|
return __assign(__assign({}, nextConfigWithI18n), { webpack: function (conf, options) {
|
|
@@ -98,13 +80,13 @@ function nextTranslate(nextConfig) {
|
|
|
98
80
|
loader: 'next-translate-plugin/loader',
|
|
99
81
|
options: {
|
|
100
82
|
basePath: basePath,
|
|
101
|
-
|
|
102
|
-
|
|
83
|
+
pagesFolder: pagesFolder ? path_1.default.join(pagesFolder, '/') : undefined,
|
|
84
|
+
appFolder: appFolder ? path_1.default.join(appFolder, '/') : undefined,
|
|
85
|
+
hasAppJs: hasAppJs,
|
|
103
86
|
hasGetInitialPropsOnAppJs: hasGetInitialPropsOnAppJs,
|
|
104
87
|
hasLoadLocaleFrom: typeof restI18n.loadLocaleFrom === 'function',
|
|
105
88
|
extensionsRgx: restI18n.extensionsRgx || test,
|
|
106
89
|
revalidate: restI18n.revalidate || 0,
|
|
107
|
-
isAppDirNext13: isAppDirNext13,
|
|
108
90
|
},
|
|
109
91
|
},
|
|
110
92
|
});
|
package/lib/cjs/loader.js
CHANGED
|
@@ -3,30 +3,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var path_1 = __importDefault(require("path"));
|
|
6
7
|
var templateWithHoc_1 = __importDefault(require("./templateWithHoc"));
|
|
7
8
|
var templateWithLoader_1 = __importDefault(require("./templateWithLoader"));
|
|
8
9
|
var utils_1 = require("./utils");
|
|
9
10
|
var templateAppDir_1 = __importDefault(require("./templateAppDir"));
|
|
10
11
|
function loader(rawCode) {
|
|
11
|
-
var _a = this.getOptions(), basePath = _a.basePath,
|
|
12
|
+
var _a = this.getOptions(), basePath = _a.basePath, pagesFolder = _a.pagesFolder, appFolder = _a.appFolder, hasAppJs = _a.hasAppJs, hasGetInitialPropsOnAppJs = _a.hasGetInitialPropsOnAppJs, hasLoadLocaleFrom = _a.hasLoadLocaleFrom, extensionsRgx = _a.extensionsRgx, revalidate = _a.revalidate;
|
|
13
|
+
var normalizedResourcePath = path_1.default.join(path_1.default.relative(basePath, this.resourcePath)).replace(/\\/g, '/');
|
|
14
|
+
var isAppDirNext13 = appFolder && normalizedResourcePath.includes(appFolder.replace(/\\/g, '/'));
|
|
15
|
+
var pagesPath = (isAppDirNext13 ? appFolder : pagesFolder);
|
|
12
16
|
var normalizedPagesPath = pagesPath.replace(/\\/g, '/');
|
|
13
|
-
var normalizedResourcePath = this.resourcePath.replace(/\\/g, '/');
|
|
14
17
|
if (normalizedResourcePath.includes('node_modules/next/dist/pages/_app')) {
|
|
15
18
|
if (hasAppJs)
|
|
16
19
|
return rawCode;
|
|
17
20
|
return (0, utils_1.getDefaultAppJs)(hasLoadLocaleFrom);
|
|
18
21
|
}
|
|
19
|
-
if (!isAppDirNext13 && !normalizedResourcePath.
|
|
22
|
+
if (!isAppDirNext13 && !normalizedResourcePath.includes(normalizedPagesPath))
|
|
20
23
|
return rawCode;
|
|
21
24
|
var page = normalizedResourcePath.replace(normalizedPagesPath, '/');
|
|
22
25
|
var pageNoExt = page.replace(extensionsRgx, '');
|
|
23
26
|
var pagePkg = (0, utils_1.parseFile)(basePath, normalizedResourcePath);
|
|
27
|
+
if (isAppDirNext13) {
|
|
28
|
+
return (0, templateAppDir_1.default)(pagePkg, { hasLoadLocaleFrom: hasLoadLocaleFrom, pageNoExt: pageNoExt, normalizedResourcePath: normalizedResourcePath, appFolder: appFolder });
|
|
29
|
+
}
|
|
24
30
|
var defaultExport = (0, utils_1.getDefaultExport)(pagePkg);
|
|
25
31
|
if (!defaultExport)
|
|
26
32
|
return rawCode;
|
|
27
|
-
if (isAppDirNext13) {
|
|
28
|
-
return (0, templateAppDir_1.default)(pagePkg, { hasLoadLocaleFrom: hasLoadLocaleFrom, pageNoExt: pageNoExt, normalizedResourcePath: normalizedResourcePath, normalizedPagesPath: normalizedPagesPath });
|
|
29
|
-
}
|
|
30
33
|
if ((0, utils_1.hasExportName)(pagePkg, '__N_SSP') || (0, utils_1.hasExportName)(pagePkg, '__N_SSG')) {
|
|
31
34
|
return rawCode;
|
|
32
35
|
}
|
|
@@ -4,11 +4,11 @@ var utils_1 = require("./utils");
|
|
|
4
4
|
var clientLine = ['"use client"', "'use client'"];
|
|
5
5
|
var defaultDynamicExport = "export const dynamic = 'force-dynamic';";
|
|
6
6
|
function templateAppDir(pagePkg, _a) {
|
|
7
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.hasLoadLocaleFrom, hasLoadLocaleFrom = _c === void 0 ? false : _c, _d = _b.pageNoExt, pageNoExt = _d === void 0 ? '/' : _d, _e = _b.normalizedResourcePath, normalizedResourcePath = _e === void 0 ? '' : _e, _f = _b.
|
|
7
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.hasLoadLocaleFrom, hasLoadLocaleFrom = _c === void 0 ? false : _c, _d = _b.pageNoExt, pageNoExt = _d === void 0 ? '/' : _d, _e = _b.normalizedResourcePath, normalizedResourcePath = _e === void 0 ? '' : _e, _f = _b.appFolder, appFolder = _f === void 0 ? '' : _f;
|
|
8
8
|
var code = pagePkg.getCode();
|
|
9
9
|
var codeWithoutComments = (0, utils_1.removeCommentsFromCode)(code).trim();
|
|
10
10
|
var isClientCode = clientLine.some(function (line) { return codeWithoutComments.startsWith(line); });
|
|
11
|
-
var isPage = pageNoExt.endsWith('/page') && normalizedResourcePath.startsWith(
|
|
11
|
+
var isPage = pageNoExt.endsWith('/page') && normalizedResourcePath.startsWith(appFolder);
|
|
12
12
|
if (!isPage && !isClientCode)
|
|
13
13
|
return code;
|
|
14
14
|
var hash = Date.now().toString(16);
|
package/lib/cjs/utils.js
CHANGED
|
@@ -23,8 +23,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.removeCommentsFromCode = exports.interceptExport = exports.isNotExportModifier = exports.hasHOC = exports.isPageToIgnore = exports.hasStaticName = exports.getStaticName = exports.hasExportName = exports.getDefaultExport = exports.getNamedExport = exports.resolveIdentifier = exports.resolveParenthesis = exports.getImportedNames = exports.getSymbol = exports.parseCode = exports.parseFile = exports.getFilePkg = exports.getTsCompilerOptions = exports.overwriteLoadLocales = exports.getDefaultAppJs = exports.defaultLoader = void 0;
|
|
26
|
+
exports.existPages = exports.calculatePageDir = exports.removeCommentsFromCode = exports.interceptExport = exports.isNotExportModifier = exports.hasHOC = exports.isPageToIgnore = exports.hasStaticName = exports.getStaticName = exports.hasExportName = exports.getDefaultExport = exports.getNamedExport = exports.resolveIdentifier = exports.resolveParenthesis = exports.getImportedNames = exports.getSymbol = exports.parseCode = exports.parseFile = exports.getFilePkg = exports.getTsCompilerOptions = exports.overwriteLoadLocales = exports.getDefaultAppJs = exports.defaultLoader = void 0;
|
|
27
27
|
var typescript_1 = __importDefault(require("typescript"));
|
|
28
|
+
var path_1 = __importDefault(require("path"));
|
|
29
|
+
var fs_1 = __importDefault(require("fs"));
|
|
28
30
|
var specFileOrFolderRgx = /(__mocks__|__tests__)|(\.(spec|test)\.(tsx|ts|js|jsx)$)/;
|
|
29
31
|
exports.defaultLoader = '(l, n) => import(`@next-translate-root/locales/${l}/${n}`).then(m => m.default)';
|
|
30
32
|
function getDefaultAppJs(hasLoadLocaleFrom) {
|
|
@@ -354,3 +356,25 @@ function removeCommentsFromCode(code) {
|
|
|
354
356
|
return code.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm, '');
|
|
355
357
|
}
|
|
356
358
|
exports.removeCommentsFromCode = removeCommentsFromCode;
|
|
359
|
+
function calculatePageDir(name, pagesInDir, dir) {
|
|
360
|
+
if (pagesInDir)
|
|
361
|
+
return pagesInDir.replace(new RegExp('(app|pages)$'), name);
|
|
362
|
+
var dirs = [
|
|
363
|
+
name,
|
|
364
|
+
"src/".concat(name),
|
|
365
|
+
"app/".concat(name),
|
|
366
|
+
"integrations/".concat(name),
|
|
367
|
+
];
|
|
368
|
+
for (var _i = 0, dirs_1 = dirs; _i < dirs_1.length; _i++) {
|
|
369
|
+
var possiblePageDir = dirs_1[_i];
|
|
370
|
+
if (fs_1.default.existsSync(path_1.default.join(dir, possiblePageDir))) {
|
|
371
|
+
return path_1.default.join(possiblePageDir);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
exports.calculatePageDir = calculatePageDir;
|
|
377
|
+
function existPages(dir, pages) {
|
|
378
|
+
return pages && fs_1.default.existsSync(path_1.default.join(dir, pages));
|
|
379
|
+
}
|
|
380
|
+
exports.existPages = existPages;
|
package/lib/esm/index.js
CHANGED
|
@@ -22,56 +22,38 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
22
22
|
};
|
|
23
23
|
import fs from 'fs';
|
|
24
24
|
import path from 'path';
|
|
25
|
-
import { getDefaultExport, hasHOC, hasStaticName, parseFile } from './utils';
|
|
25
|
+
import { getDefaultExport, hasHOC, hasStaticName, parseFile, calculatePageDir, existPages } from './utils';
|
|
26
26
|
var test = /\.(tsx|ts|js|mjs|jsx)$/;
|
|
27
|
-
var appDirNext13 = [
|
|
28
|
-
'app',
|
|
29
|
-
'src/app',
|
|
30
|
-
'app/app',
|
|
31
|
-
'integrations/app'
|
|
32
|
-
];
|
|
33
|
-
var possiblePageDirs = [
|
|
34
|
-
'pages',
|
|
35
|
-
'src/pages',
|
|
36
|
-
'app/pages',
|
|
37
|
-
'integrations/pages',
|
|
38
|
-
];
|
|
39
27
|
function nextTranslate(nextConfig) {
|
|
40
|
-
var _a;
|
|
41
28
|
if (nextConfig === void 0) { nextConfig = {}; }
|
|
42
29
|
var basePath = pkgDir();
|
|
43
|
-
var isAppDirNext13 = (_a = nextConfig.experimental) === null || _a === void 0 ? void 0 : _a.appDir;
|
|
44
|
-
var dirs = isAppDirNext13 ? appDirNext13 : possiblePageDirs;
|
|
45
30
|
var dir = path.resolve(path.relative(basePath, process.env.NEXT_TRANSLATE_PATH || '.'));
|
|
46
31
|
var nextConfigI18n = nextConfig.i18n || {};
|
|
47
|
-
var
|
|
32
|
+
var _a = require(path.join(dir, 'i18n')), _b = _a.locales, locales = _b === void 0 ? nextConfigI18n.locales || [] : _b, _c = _a.defaultLocale, defaultLocale = _c === void 0 ? nextConfigI18n.defaultLocale || 'en' : _c, _d = _a.domains, domains = _d === void 0 ? nextConfigI18n.domains : _d, _e = _a.localeDetection, localeDetection = _e === void 0 ? nextConfigI18n.localeDetection : _e, _f = _a.loader, loader = _f === void 0 ? true : _f, pagesInDir = _a.pagesInDir, restI18n = __rest(_a, ["locales", "defaultLocale", "domains", "localeDetection", "loader", "pagesInDir"]);
|
|
48
33
|
var nextConfigWithI18n = __assign(__assign({}, nextConfig), { i18n: {
|
|
49
34
|
locales: locales,
|
|
50
35
|
defaultLocale: defaultLocale,
|
|
51
36
|
domains: domains,
|
|
52
37
|
localeDetection: localeDetection,
|
|
53
38
|
} });
|
|
39
|
+
var pagesFolder = calculatePageDir('pages', pagesInDir, dir);
|
|
40
|
+
var appFolder = calculatePageDir('app', pagesInDir, dir);
|
|
54
41
|
var hasGetInitialPropsOnAppJs = false;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
var possiblePageDir = dirs_1[_i];
|
|
58
|
-
if (fs.existsSync(path.join(dir, possiblePageDir))) {
|
|
59
|
-
pagesInDir = possiblePageDir;
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (!pagesInDir || !fs.existsSync(path.join(dir, pagesInDir))) {
|
|
42
|
+
var hasAppJs = false;
|
|
43
|
+
if (!existPages(dir, pagesFolder) && !existPages(dir, appFolder)) {
|
|
65
44
|
return nextConfigWithI18n;
|
|
66
45
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
46
|
+
if (pagesFolder) {
|
|
47
|
+
var pagesPath = path.join(dir, pagesFolder);
|
|
48
|
+
var app = fs.readdirSync(pagesPath).find(function (page) { return page.startsWith('_app.'); });
|
|
49
|
+
if (app) {
|
|
50
|
+
var appPkg = parseFile(dir, path.join(pagesPath, app));
|
|
51
|
+
var defaultExport = getDefaultExport(appPkg);
|
|
52
|
+
hasAppJs = true;
|
|
53
|
+
if (defaultExport) {
|
|
54
|
+
var isGetInitialProps = hasStaticName(appPkg, defaultExport, 'getInitialProps');
|
|
55
|
+
hasGetInitialPropsOnAppJs = isGetInitialProps || hasHOC(appPkg);
|
|
56
|
+
}
|
|
75
57
|
}
|
|
76
58
|
}
|
|
77
59
|
return __assign(__assign({}, nextConfigWithI18n), { webpack: function (conf, options) {
|
|
@@ -93,13 +75,13 @@ function nextTranslate(nextConfig) {
|
|
|
93
75
|
loader: 'next-translate-plugin/loader',
|
|
94
76
|
options: {
|
|
95
77
|
basePath: basePath,
|
|
96
|
-
|
|
97
|
-
|
|
78
|
+
pagesFolder: pagesFolder ? path.join(pagesFolder, '/') : undefined,
|
|
79
|
+
appFolder: appFolder ? path.join(appFolder, '/') : undefined,
|
|
80
|
+
hasAppJs: hasAppJs,
|
|
98
81
|
hasGetInitialPropsOnAppJs: hasGetInitialPropsOnAppJs,
|
|
99
82
|
hasLoadLocaleFrom: typeof restI18n.loadLocaleFrom === 'function',
|
|
100
83
|
extensionsRgx: restI18n.extensionsRgx || test,
|
|
101
84
|
revalidate: restI18n.revalidate || 0,
|
|
102
|
-
isAppDirNext13: isAppDirNext13,
|
|
103
85
|
},
|
|
104
86
|
},
|
|
105
87
|
});
|
package/lib/esm/loader.js
CHANGED
|
@@ -1,27 +1,30 @@
|
|
|
1
|
+
import path from 'path';
|
|
1
2
|
import templateWithHoc from './templateWithHoc';
|
|
2
3
|
import templateWithLoader from './templateWithLoader';
|
|
3
4
|
import { parseFile, getDefaultAppJs, getDefaultExport, hasExportName, hasStaticName, isPageToIgnore, hasHOC, } from './utils';
|
|
4
5
|
import templateAppDir from './templateAppDir';
|
|
5
6
|
export default function loader(rawCode) {
|
|
6
|
-
var _a = this.getOptions(), basePath = _a.basePath,
|
|
7
|
+
var _a = this.getOptions(), basePath = _a.basePath, pagesFolder = _a.pagesFolder, appFolder = _a.appFolder, hasAppJs = _a.hasAppJs, hasGetInitialPropsOnAppJs = _a.hasGetInitialPropsOnAppJs, hasLoadLocaleFrom = _a.hasLoadLocaleFrom, extensionsRgx = _a.extensionsRgx, revalidate = _a.revalidate;
|
|
8
|
+
var normalizedResourcePath = path.join(path.relative(basePath, this.resourcePath)).replace(/\\/g, '/');
|
|
9
|
+
var isAppDirNext13 = appFolder && normalizedResourcePath.includes(appFolder.replace(/\\/g, '/'));
|
|
10
|
+
var pagesPath = (isAppDirNext13 ? appFolder : pagesFolder);
|
|
7
11
|
var normalizedPagesPath = pagesPath.replace(/\\/g, '/');
|
|
8
|
-
var normalizedResourcePath = this.resourcePath.replace(/\\/g, '/');
|
|
9
12
|
if (normalizedResourcePath.includes('node_modules/next/dist/pages/_app')) {
|
|
10
13
|
if (hasAppJs)
|
|
11
14
|
return rawCode;
|
|
12
15
|
return getDefaultAppJs(hasLoadLocaleFrom);
|
|
13
16
|
}
|
|
14
|
-
if (!isAppDirNext13 && !normalizedResourcePath.
|
|
17
|
+
if (!isAppDirNext13 && !normalizedResourcePath.includes(normalizedPagesPath))
|
|
15
18
|
return rawCode;
|
|
16
19
|
var page = normalizedResourcePath.replace(normalizedPagesPath, '/');
|
|
17
20
|
var pageNoExt = page.replace(extensionsRgx, '');
|
|
18
21
|
var pagePkg = parseFile(basePath, normalizedResourcePath);
|
|
22
|
+
if (isAppDirNext13) {
|
|
23
|
+
return templateAppDir(pagePkg, { hasLoadLocaleFrom: hasLoadLocaleFrom, pageNoExt: pageNoExt, normalizedResourcePath: normalizedResourcePath, appFolder: appFolder });
|
|
24
|
+
}
|
|
19
25
|
var defaultExport = getDefaultExport(pagePkg);
|
|
20
26
|
if (!defaultExport)
|
|
21
27
|
return rawCode;
|
|
22
|
-
if (isAppDirNext13) {
|
|
23
|
-
return templateAppDir(pagePkg, { hasLoadLocaleFrom: hasLoadLocaleFrom, pageNoExt: pageNoExt, normalizedResourcePath: normalizedResourcePath, normalizedPagesPath: normalizedPagesPath });
|
|
24
|
-
}
|
|
25
28
|
if (hasExportName(pagePkg, '__N_SSP') || hasExportName(pagePkg, '__N_SSG')) {
|
|
26
29
|
return rawCode;
|
|
27
30
|
}
|
|
@@ -2,11 +2,11 @@ import { interceptExport, overwriteLoadLocales, getNamedExport, removeCommentsFr
|
|
|
2
2
|
var clientLine = ['"use client"', "'use client'"];
|
|
3
3
|
var defaultDynamicExport = "export const dynamic = 'force-dynamic';";
|
|
4
4
|
export default function templateAppDir(pagePkg, _a) {
|
|
5
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.hasLoadLocaleFrom, hasLoadLocaleFrom = _c === void 0 ? false : _c, _d = _b.pageNoExt, pageNoExt = _d === void 0 ? '/' : _d, _e = _b.normalizedResourcePath, normalizedResourcePath = _e === void 0 ? '' : _e, _f = _b.
|
|
5
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.hasLoadLocaleFrom, hasLoadLocaleFrom = _c === void 0 ? false : _c, _d = _b.pageNoExt, pageNoExt = _d === void 0 ? '/' : _d, _e = _b.normalizedResourcePath, normalizedResourcePath = _e === void 0 ? '' : _e, _f = _b.appFolder, appFolder = _f === void 0 ? '' : _f;
|
|
6
6
|
var code = pagePkg.getCode();
|
|
7
7
|
var codeWithoutComments = removeCommentsFromCode(code).trim();
|
|
8
8
|
var isClientCode = clientLine.some(function (line) { return codeWithoutComments.startsWith(line); });
|
|
9
|
-
var isPage = pageNoExt.endsWith('/page') && normalizedResourcePath.startsWith(
|
|
9
|
+
var isPage = pageNoExt.endsWith('/page') && normalizedResourcePath.startsWith(appFolder);
|
|
10
10
|
if (!isPage && !isClientCode)
|
|
11
11
|
return code;
|
|
12
12
|
var hash = Date.now().toString(16);
|
package/lib/esm/utils.js
CHANGED
|
@@ -19,6 +19,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
19
19
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
20
|
};
|
|
21
21
|
import ts from 'typescript';
|
|
22
|
+
import path from 'path';
|
|
23
|
+
import fs from 'fs';
|
|
22
24
|
var specFileOrFolderRgx = /(__mocks__|__tests__)|(\.(spec|test)\.(tsx|ts|js|jsx)$)/;
|
|
23
25
|
export var defaultLoader = '(l, n) => import(`@next-translate-root/locales/${l}/${n}`).then(m => m.default)';
|
|
24
26
|
export function getDefaultAppJs(hasLoadLocaleFrom) {
|
|
@@ -328,3 +330,23 @@ export function interceptExport(filePkg, exportName, defaultLocalName) {
|
|
|
328
330
|
export function removeCommentsFromCode(code) {
|
|
329
331
|
return code.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm, '');
|
|
330
332
|
}
|
|
333
|
+
export function calculatePageDir(name, pagesInDir, dir) {
|
|
334
|
+
if (pagesInDir)
|
|
335
|
+
return pagesInDir.replace(new RegExp('(app|pages)$'), name);
|
|
336
|
+
var dirs = [
|
|
337
|
+
name,
|
|
338
|
+
"src/".concat(name),
|
|
339
|
+
"app/".concat(name),
|
|
340
|
+
"integrations/".concat(name),
|
|
341
|
+
];
|
|
342
|
+
for (var _i = 0, dirs_1 = dirs; _i < dirs_1.length; _i++) {
|
|
343
|
+
var possiblePageDir = dirs_1[_i];
|
|
344
|
+
if (fs.existsSync(path.join(dir, possiblePageDir))) {
|
|
345
|
+
return path.join(possiblePageDir);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
export function existPages(dir, pages) {
|
|
351
|
+
return pages && fs.existsSync(path.join(dir, pages));
|
|
352
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "next-translate-plugin",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.3.0-canary.1",
|
|
4
4
|
"description": "Tiny and powerful i18n plugin to translate your Next.js pages.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -104,4 +104,4 @@
|
|
|
104
104
|
"^.+\\.(j|t)sx?$": "babel-jest"
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
}
|
|
107
|
+
}
|
package/templateAppDir.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ParsedFilePkg } from "./types";
|
|
2
|
-
export default function templateAppDir(pagePkg: ParsedFilePkg, { hasLoadLocaleFrom, pageNoExt, normalizedResourcePath,
|
|
2
|
+
export default function templateAppDir(pagePkg: ParsedFilePkg, { hasLoadLocaleFrom, pageNoExt, normalizedResourcePath, appFolder }?: {
|
|
3
3
|
hasLoadLocaleFrom?: boolean | undefined;
|
|
4
4
|
pageNoExt?: string | undefined;
|
|
5
5
|
normalizedResourcePath?: string | undefined;
|
|
6
|
-
|
|
6
|
+
appFolder?: string | undefined;
|
|
7
7
|
}): string;
|
package/types.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type ts from 'typescript';
|
|
2
2
|
export interface LoaderOptions {
|
|
3
3
|
basePath: string;
|
|
4
|
-
|
|
4
|
+
pagesFolder: string | undefined;
|
|
5
|
+
appFolder: string | undefined;
|
|
5
6
|
hasAppJs: boolean;
|
|
6
7
|
hasGetInitialPropsOnAppJs: boolean;
|
|
7
8
|
hasLoadLocaleFrom: boolean;
|
|
8
9
|
extensionsRgx: RegExp;
|
|
9
10
|
revalidate: number;
|
|
10
|
-
isAppDirNext13: boolean;
|
|
11
11
|
}
|
|
12
12
|
export declare type Transformer = (rootNode: ts.SourceFile, context: ts.TransformationContext) => ts.SourceFile;
|
|
13
13
|
export interface ParsedFilePkg {
|
package/utils.d.ts
CHANGED
|
@@ -21,3 +21,5 @@ export declare function hasHOC(filePkg: ParsedFilePkg): boolean;
|
|
|
21
21
|
export declare function isNotExportModifier(modifier: ts.Modifier): boolean;
|
|
22
22
|
export declare function interceptExport(filePkg: ParsedFilePkg, exportName: string, defaultLocalName: string): string;
|
|
23
23
|
export declare function removeCommentsFromCode(code: string): string;
|
|
24
|
+
export declare function calculatePageDir(name: 'pages' | 'app', pagesInDir: string | undefined, dir: string): string | undefined;
|
|
25
|
+
export declare function existPages(dir: string, pages: string | undefined): boolean | "" | undefined;
|