index.js 4.0 KB

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