index.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _devalue = _interopRequireDefault(require("next/dist/compiled/devalue"));
  7. var _path = require("path");
  8. var _querystring = require("querystring");
  9. var _constants = require("../../../../lib/constants");
  10. var _utils = require("../../../../shared/lib/router/utils");
  11. var _escapeRegexp = require("../../../../shared/lib/escape-regexp");
  12. var _constants1 = require("../../../../shared/lib/constants");
  13. var _stringifyRequest = require("../../stringify-request");
  14. function _interopRequireDefault(obj) {
  15. return obj && obj.__esModule ? obj : {
  16. default: obj
  17. };
  18. }
  19. const nextServerlessLoader = function() {
  20. const { distDir , absolutePagePath , page , buildId , canonicalBase , assetPrefix , absoluteAppPath , absoluteDocumentPath , absoluteErrorPath , absolute404Path , generateEtags , poweredByHeader , basePath , runtimeConfig , previewProps , loadedEnvFiles , i18n , } = typeof this.query === "string" ? (0, _querystring).parse(this.query.slice(1)) : this.query;
  21. const buildManifest = (0, _path).join(distDir, _constants1.BUILD_MANIFEST).replace(/\\/g, "/");
  22. const reactLoadableManifest = (0, _path).join(distDir, _constants1.REACT_LOADABLE_MANIFEST).replace(/\\/g, "/");
  23. const routesManifest = (0, _path).join(distDir, _constants1.ROUTES_MANIFEST).replace(/\\/g, "/");
  24. const escapedBuildId = (0, _escapeRegexp).escapeStringRegexp(buildId);
  25. const pageIsDynamicRoute = (0, _utils).isDynamicRoute(page);
  26. const encodedPreviewProps = (0, _devalue).default(JSON.parse(previewProps));
  27. const envLoading = `
  28. const { processEnv } = require('@next/env')
  29. processEnv(${Buffer.from(loadedEnvFiles, "base64").toString()})
  30. `;
  31. const runtimeConfigImports = runtimeConfig ? `
  32. const { setConfig } = require('next/config')
  33. ` : "";
  34. const runtimeConfigSetter = runtimeConfig ? `
  35. const runtimeConfig = ${runtimeConfig}
  36. setConfig(runtimeConfig)
  37. ` : "const runtimeConfig = {}";
  38. if (page.match(_constants.API_ROUTE)) {
  39. return `
  40. ${envLoading}
  41. ${runtimeConfigImports}
  42. ${/*
  43. this needs to be called first so its available for any other imports
  44. */ runtimeConfigSetter}
  45. import 'next/dist/server/node-polyfill-fetch'
  46. import routesManifest from '${routesManifest}'
  47. import { getApiHandler } from 'next/dist/build/webpack/loaders/next-serverless-loader/api-handler'
  48. const rewrites = Array.isArray(routesManifest.rewrites)
  49. ? {
  50. afterFiles: routesManifest.rewrites
  51. }
  52. : routesManifest.rewrites
  53. const apiHandler = getApiHandler({
  54. pageModule: require(${(0, _stringifyRequest).stringifyRequest(this, absolutePagePath)}),
  55. rewrites: rewrites,
  56. i18n: ${i18n || "undefined"},
  57. page: "${page}",
  58. basePath: "${basePath}",
  59. pageIsDynamic: ${pageIsDynamicRoute},
  60. encodedPreviewProps: ${encodedPreviewProps}
  61. })
  62. export default apiHandler
  63. `;
  64. } else {
  65. return `
  66. import 'next/dist/server/node-polyfill-fetch'
  67. import routesManifest from '${routesManifest}'
  68. import buildManifest from '${buildManifest}'
  69. import reactLoadableManifest from '${reactLoadableManifest}'
  70. ${envLoading}
  71. ${runtimeConfigImports}
  72. ${// this needs to be called first so its available for any other imports
  73. runtimeConfigSetter}
  74. import { getPageHandler } from 'next/dist/build/webpack/loaders/next-serverless-loader/page-handler'
  75. const documentModule = require(${(0, _stringifyRequest).stringifyRequest(this, absoluteDocumentPath)})
  76. const appMod = require(${(0, _stringifyRequest).stringifyRequest(this, absoluteAppPath)})
  77. let App = appMod.default || appMod.then && appMod.then(mod => mod.default);
  78. const compMod = require(${(0, _stringifyRequest).stringifyRequest(this, absolutePagePath)})
  79. const Component = compMod.default || compMod.then && compMod.then(mod => mod.default)
  80. export default Component
  81. export const getStaticProps = compMod['getStaticProp' + 's'] || compMod.then && compMod.then(mod => mod['getStaticProp' + 's'])
  82. export const getStaticPaths = compMod['getStaticPath' + 's'] || compMod.then && compMod.then(mod => mod['getStaticPath' + 's'])
  83. export const getServerSideProps = compMod['getServerSideProp' + 's'] || compMod.then && compMod.then(mod => mod['getServerSideProp' + 's'])
  84. // kept for detecting legacy exports
  85. export const unstable_getStaticParams = compMod['unstable_getStaticParam' + 's'] || compMod.then && compMod.then(mod => mod['unstable_getStaticParam' + 's'])
  86. export const unstable_getStaticProps = compMod['unstable_getStaticProp' + 's'] || compMod.then && compMod.then(mod => mod['unstable_getStaticProp' + 's'])
  87. export const unstable_getStaticPaths = compMod['unstable_getStaticPath' + 's'] || compMod.then && compMod.then(mod => mod['unstable_getStaticPath' + 's'])
  88. export const unstable_getServerProps = compMod['unstable_getServerProp' + 's'] || compMod.then && compMod.then(mod => mod['unstable_getServerProp' + 's'])
  89. export let config = compMod['confi' + 'g'] || (compMod.then && compMod.then(mod => mod['confi' + 'g'])) || {}
  90. export const _app = App
  91. const rewrites = Array.isArray(routesManifest.rewrites)
  92. ? {
  93. afterFiles: routesManifest.rewrites
  94. }
  95. : routesManifest.rewrites
  96. const { renderReqToHTML, render } = getPageHandler({
  97. pageModule: compMod,
  98. pageComponent: Component,
  99. pageConfig: config,
  100. appModule: App,
  101. documentModule: documentModule,
  102. errorModule: require(${(0, _stringifyRequest).stringifyRequest(this, absoluteErrorPath)}),
  103. notFoundModule: ${absolute404Path ? `require(${(0, _stringifyRequest).stringifyRequest(this, absolute404Path)})` : undefined},
  104. pageGetStaticProps: getStaticProps,
  105. pageGetStaticPaths: getStaticPaths,
  106. pageGetServerSideProps: getServerSideProps,
  107. assetPrefix: "${assetPrefix}",
  108. canonicalBase: "${canonicalBase}",
  109. generateEtags: ${generateEtags || "false"},
  110. poweredByHeader: ${poweredByHeader || "false"},
  111. runtimeConfig,
  112. buildManifest,
  113. reactLoadableManifest,
  114. rewrites: rewrites,
  115. i18n: ${i18n || "undefined"},
  116. page: "${page}",
  117. buildId: "${buildId}",
  118. escapedBuildId: "${escapedBuildId}",
  119. basePath: "${basePath}",
  120. pageIsDynamic: ${pageIsDynamicRoute},
  121. encodedPreviewProps: ${encodedPreviewProps}
  122. })
  123. export { renderReqToHTML, render }
  124. `;
  125. }
  126. };
  127. var _default = nextServerlessLoader;
  128. exports.default = _default;
  129. //# sourceMappingURL=index.js.map