index.js 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. "use strict";
  2. var __assign = (this && this.__assign) || function () {
  3. __assign = Object.assign || function(t) {
  4. for (var s, i = 1, n = arguments.length; i < n; i++) {
  5. s = arguments[i];
  6. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  7. t[p] = s[p];
  8. }
  9. return t;
  10. };
  11. return __assign.apply(this, arguments);
  12. };
  13. var __rest = (this && this.__rest) || function (s, e) {
  14. var t = {};
  15. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
  16. t[p] = s[p];
  17. if (s != null && typeof Object.getOwnPropertySymbols === "function")
  18. for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  19. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
  20. t[p[i]] = s[p[i]];
  21. }
  22. return t;
  23. };
  24. Object.defineProperty(exports, "__esModule", { value: true });
  25. var utils_1 = require("./utils");
  26. function nextTranslate(nextConfig) {
  27. if (nextConfig === void 0) { nextConfig = {}; }
  28. var fs = require('fs');
  29. var path = require('path');
  30. var test = /\.(tsx|ts|js|mjs|jsx)$/;
  31. var dir = path.resolve(path.relative(pkgDir(), process.env.NEXT_TRANSLATE_PATH || '.'));
  32. var _a = require(path.join(dir, 'i18n')), loadLocaleFrom = _a.loadLocaleFrom, localesToIgnore = _a.localesToIgnore, pages = _a.pages, logger = _a.logger, loggerEnvironment = _a.loggerEnvironment, staticsHoc = _a.staticsHoc, extensionsRgx = _a.extensionsRgx, _b = _a.loader, loader = _b === void 0 ? true : _b, logBuild = _a.logBuild, revalidate = _a.revalidate, pagesInDir = _a.pagesInDir, interpolation = _a.interpolation, keySeparator = _a.keySeparator, nsSeparator = _a.nsSeparator, defaultNS = _a.defaultNS, restI18n = __rest(_a, ["loadLocaleFrom", "localesToIgnore", "pages", "logger", "loggerEnvironment", "staticsHoc", "extensionsRgx", "loader", "logBuild", "revalidate", "pagesInDir", "interpolation", "keySeparator", "nsSeparator", "defaultNS"]);
  33. var hasGetInitialPropsOnAppJs = false;
  34. if (!pagesInDir) {
  35. pagesInDir = 'pages';
  36. if (fs.existsSync(path.join(dir, 'src/pages'))) {
  37. pagesInDir = 'src/pages';
  38. }
  39. else if (fs.existsSync(path.join(dir, 'app/pages'))) {
  40. pagesInDir = 'app/pages';
  41. }
  42. else if (fs.existsSync(path.join(dir, 'integrations/pages'))) {
  43. pagesInDir = 'integrations/pages';
  44. }
  45. }
  46. var pagesPath = path.join(dir, pagesInDir);
  47. var app = fs
  48. .readdirSync(pagesPath)
  49. .find(function (page) { return page.startsWith('_app.'); });
  50. if (app) {
  51. var code = fs.readFileSync(path.join(pagesPath, app)).toString('UTF-8');
  52. hasGetInitialPropsOnAppJs =
  53. !!code.match(/\WgetInitialProps\W/g) || (0, utils_1.hasHOC)(code);
  54. }
  55. var i18n = __assign(__assign({}, (nextConfig.i18n || {})), restI18n);
  56. return __assign(__assign({}, nextConfig), { i18n: i18n, webpack: function (conf, options) {
  57. var config = typeof nextConfig.webpack === 'function'
  58. ? nextConfig.webpack(conf, options)
  59. : conf;
  60. config.resolve.alias = __assign(__assign({}, (config.resolve.alias || {})), { '@next-translate-root': path.resolve(dir) });
  61. if (!loader)
  62. return config;
  63. config.module.rules.push({
  64. test: test,
  65. use: {
  66. loader: 'next-translate/plugin/loader',
  67. options: {
  68. extensionsRgx: extensionsRgx || test,
  69. revalidate: revalidate || 0,
  70. hasGetInitialPropsOnAppJs: hasGetInitialPropsOnAppJs,
  71. hasAppJs: !!app,
  72. pagesPath: path.join(pagesPath, '/'),
  73. hasLoadLocaleFrom: typeof loadLocaleFrom === 'function',
  74. },
  75. },
  76. });
  77. return config;
  78. } });
  79. }
  80. exports.default = nextTranslate;
  81. function pkgDir() {
  82. try {
  83. return require('pkg-dir').sync() || process.cwd();
  84. }
  85. catch (e) {
  86. return process.cwd();
  87. }
  88. }