100 lines
4.8 KiB
JavaScript
100 lines
4.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "default", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _default;
|
|
}
|
|
});
|
|
const _getmodulebuildinfo = require("../get-module-build-info");
|
|
const _constants = require("../../../../lib/constants");
|
|
const _routekind = require("../../../../server/future/route-kind");
|
|
const _normalizepagepath = require("../../../../shared/lib/page-path/normalize-page-path");
|
|
const _loadentrypoint = require("../../../load-entrypoint");
|
|
/*
|
|
For pages SSR'd at the edge, we bundle them with the ESM version of Next in order to
|
|
benefit from the better tree-shaking and thus, smaller bundle sizes.
|
|
|
|
The absolute paths for _app, _error and _document, used in this loader, link to the regular CJS modules.
|
|
They are generated in `createPagesMapping` where we don't have access to `isEdgeRuntime`,
|
|
so we have to do it here. It's not that bad because it keeps all references to ESM modules magic in this place.
|
|
*/ function swapDistFolderWithEsmDistFolder(path) {
|
|
return path.replace("next/dist/pages", "next/dist/esm/pages");
|
|
}
|
|
function getRouteModuleOptions(page) {
|
|
const options = {
|
|
definition: {
|
|
kind: _routekind.RouteKind.PAGES,
|
|
page: (0, _normalizepagepath.normalizePagePath)(page),
|
|
pathname: page,
|
|
// The following aren't used in production.
|
|
bundlePath: "",
|
|
filename: ""
|
|
}
|
|
};
|
|
return options;
|
|
}
|
|
const edgeSSRLoader = async function edgeSSRLoader() {
|
|
const { dev, page, absolutePagePath, absoluteAppPath, absoluteDocumentPath, absolute500Path, absoluteErrorPath, isServerComponent, stringifiedConfig: stringifiedConfigBase64, appDirLoader: appDirLoaderBase64, pagesType, sriEnabled, cacheHandler, preferredRegion, middlewareConfig: middlewareConfigBase64, serverActions } = this.getOptions();
|
|
const middlewareConfig = JSON.parse(Buffer.from(middlewareConfigBase64, "base64").toString());
|
|
const stringifiedConfig = Buffer.from(stringifiedConfigBase64 || "", "base64").toString();
|
|
const appDirLoader = Buffer.from(appDirLoaderBase64 || "", "base64").toString();
|
|
const isAppDir = pagesType === "app";
|
|
const buildInfo = (0, _getmodulebuildinfo.getModuleBuildInfo)(this._module);
|
|
buildInfo.nextEdgeSSR = {
|
|
isServerComponent,
|
|
page: page,
|
|
isAppDir
|
|
};
|
|
buildInfo.route = {
|
|
page,
|
|
absolutePagePath,
|
|
preferredRegion,
|
|
middlewareConfig
|
|
};
|
|
const pagePath = this.utils.contextify(this.context || this.rootContext, absolutePagePath);
|
|
const appPath = this.utils.contextify(this.context || this.rootContext, swapDistFolderWithEsmDistFolder(absoluteAppPath));
|
|
const errorPath = this.utils.contextify(this.context || this.rootContext, swapDistFolderWithEsmDistFolder(absoluteErrorPath));
|
|
const documentPath = this.utils.contextify(this.context || this.rootContext, swapDistFolderWithEsmDistFolder(absoluteDocumentPath));
|
|
const userland500Path = absolute500Path ? this.utils.contextify(this.context || this.rootContext, swapDistFolderWithEsmDistFolder(absolute500Path)) : null;
|
|
const stringifiedPagePath = JSON.stringify(pagePath);
|
|
const pageModPath = `${appDirLoader}${stringifiedPagePath.substring(1, stringifiedPagePath.length - 1)}${isAppDir ? `?${_constants.WEBPACK_RESOURCE_QUERIES.edgeSSREntry}` : ""}`;
|
|
if (isAppDir) {
|
|
return await (0, _loadentrypoint.loadEntrypoint)("edge-ssr-app", {
|
|
VAR_USERLAND: pageModPath,
|
|
VAR_PAGE: page
|
|
}, {
|
|
sriEnabled: JSON.stringify(sriEnabled),
|
|
nextConfig: stringifiedConfig,
|
|
isServerComponent: JSON.stringify(isServerComponent),
|
|
dev: JSON.stringify(dev),
|
|
serverActions: typeof serverActions === "undefined" ? "undefined" : JSON.stringify(serverActions)
|
|
}, {
|
|
incrementalCacheHandler: cacheHandler ?? null
|
|
});
|
|
} else {
|
|
return await (0, _loadentrypoint.loadEntrypoint)("edge-ssr", {
|
|
VAR_USERLAND: pageModPath,
|
|
VAR_PAGE: page,
|
|
VAR_MODULE_DOCUMENT: documentPath,
|
|
VAR_MODULE_APP: appPath,
|
|
VAR_MODULE_GLOBAL_ERROR: errorPath
|
|
}, {
|
|
pagesType: JSON.stringify(pagesType),
|
|
sriEnabled: JSON.stringify(sriEnabled),
|
|
nextConfig: stringifiedConfig,
|
|
dev: JSON.stringify(dev),
|
|
pageRouteModuleOptions: JSON.stringify(getRouteModuleOptions(page)),
|
|
errorRouteModuleOptions: JSON.stringify(getRouteModuleOptions("/_error")),
|
|
user500RouteModuleOptions: JSON.stringify(getRouteModuleOptions("/500"))
|
|
}, {
|
|
userland500Page: userland500Path,
|
|
incrementalCacheHandler: cacheHandler ?? null
|
|
});
|
|
}
|
|
};
|
|
const _default = edgeSSRLoader;
|
|
|
|
//# sourceMappingURL=index.js.map
|