loader.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. var templateWithHoc_1 = __importDefault(require("./templateWithHoc"));
  7. var templateWithLoader_1 = __importDefault(require("./templateWithLoader"));
  8. var utils_1 = require("./utils");
  9. function loader(rawCode) {
  10. var _a = this.query, hasGetInitialPropsOnAppJs = _a.hasGetInitialPropsOnAppJs, hasAppJs = _a.hasAppJs, extensionsRgx = _a.extensionsRgx, pagesPath = _a.pagesPath, hasLoadLocaleFrom = _a.hasLoadLocaleFrom, revalidate = _a.revalidate;
  11. var normalizedPagesPath = pagesPath.replace(/\\/g, '/');
  12. var normalizedResourcePath = this.resourcePath.replace(/\\/g, '/');
  13. if (normalizedResourcePath.includes('node_modules/next/dist/pages/_app')) {
  14. if (hasAppJs)
  15. return rawCode;
  16. return (0, utils_1.getDefaultAppJs)(hasLoadLocaleFrom);
  17. }
  18. if (!normalizedResourcePath.startsWith(normalizedPagesPath))
  19. return rawCode;
  20. var page = normalizedResourcePath.replace(normalizedPagesPath, '/');
  21. var pageNoExt = page.replace(extensionsRgx, '');
  22. var code = rawCode.replace(utils_1.clearCommentsRgx, '');
  23. var typescript = page.endsWith('.ts') || page.endsWith('.tsx');
  24. if (!code.includes('export default'))
  25. return rawCode;
  26. if (code.match(/export *\w* *(__N_SSP|__N_SSG) *=/)) {
  27. return rawCode;
  28. }
  29. if (hasGetInitialPropsOnAppJs) {
  30. return pageNoExt === '/_app'
  31. ? (0, templateWithHoc_1.default)(rawCode, { typescript: typescript, hasLoadLocaleFrom: hasLoadLocaleFrom })
  32. : rawCode;
  33. }
  34. if (pageNoExt === '/_app') {
  35. return (0, templateWithHoc_1.default)(rawCode, {
  36. skipInitialProps: true,
  37. typescript: typescript,
  38. hasLoadLocaleFrom: hasLoadLocaleFrom,
  39. });
  40. }
  41. if ((0, utils_1.isPageToIgnore)(page))
  42. return rawCode;
  43. var isWrapperWithExternalHOC = (0, utils_1.hasHOC)(code);
  44. var isDynamicPage = page.includes('[');
  45. var isGetInitialProps = !!code.match(/\WgetInitialProps\W/g);
  46. var isGetServerSideProps = (0, utils_1.hasExportName)(code, 'getServerSideProps');
  47. var isGetStaticPaths = (0, utils_1.hasExportName)(code, 'getStaticPaths');
  48. var isGetStaticProps = (0, utils_1.hasExportName)(code, 'getStaticProps');
  49. var hasLoader = isGetStaticProps || isGetServerSideProps || isGetInitialProps;
  50. if (isGetInitialProps || (!hasLoader && isWrapperWithExternalHOC)) {
  51. return (0, templateWithHoc_1.default)(rawCode, { typescript: typescript, hasLoadLocaleFrom: hasLoadLocaleFrom });
  52. }
  53. var loader = isGetServerSideProps || (!hasLoader && isDynamicPage && !isGetStaticPaths)
  54. ? 'getServerSideProps'
  55. : 'getStaticProps';
  56. return (0, templateWithLoader_1.default)(rawCode, {
  57. page: pageNoExt,
  58. typescript: typescript,
  59. loader: loader,
  60. hasLoader: hasLoader,
  61. hasLoadLocaleFrom: hasLoadLocaleFrom,
  62. revalidate: revalidate,
  63. });
  64. }
  65. exports.default = loader;