securityos/node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js

129 lines
4.7 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
getRouteLoaderEntry: null,
default: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
getRouteLoaderEntry: function() {
return getRouteLoaderEntry;
},
default: function() {
return _default;
}
});
const _querystring = require("querystring");
const _getmodulebuildinfo = require("../get-module-build-info");
const _routekind = require("../../../../server/future/route-kind");
const _normalizepagepath = require("../../../../shared/lib/page-path/normalize-page-path");
const _utils = require("../utils");
const _worker = require("../../../worker");
const _loadentrypoint = require("../../../load-entrypoint");
function getRouteLoaderEntry(options) {
switch(options.kind){
case _routekind.RouteKind.PAGES:
{
const query = {
kind: options.kind,
page: options.page,
preferredRegion: options.preferredRegion,
absolutePagePath: options.absolutePagePath,
// These are the path references to the internal components that may be
// overridden by userland components.
absoluteAppPath: options.pages["/_app"],
absoluteDocumentPath: options.pages["/_document"],
middlewareConfigBase64: (0, _utils.encodeToBase64)(options.middlewareConfig)
};
return `next-route-loader?${(0, _querystring.stringify)(query)}!`;
}
case _routekind.RouteKind.PAGES_API:
{
const query = {
kind: options.kind,
page: options.page,
preferredRegion: options.preferredRegion,
absolutePagePath: options.absolutePagePath,
middlewareConfigBase64: (0, _utils.encodeToBase64)(options.middlewareConfig)
};
return `next-route-loader?${(0, _querystring.stringify)(query)}!`;
}
default:
{
throw new Error("Invariant: Unexpected route kind");
}
}
}
const loadPages = async ({ page, absolutePagePath, absoluteDocumentPath, absoluteAppPath, preferredRegion, middlewareConfigBase64 }, buildInfo)=>{
const middlewareConfig = (0, _utils.decodeFromBase64)(middlewareConfigBase64);
// Attach build info to the module.
buildInfo.route = {
page,
absolutePagePath,
preferredRegion,
middlewareConfig
};
let file = await (0, _loadentrypoint.loadEntrypoint)("pages", {
VAR_USERLAND: absolutePagePath,
VAR_MODULE_DOCUMENT: absoluteDocumentPath,
VAR_MODULE_APP: absoluteAppPath,
VAR_DEFINITION_PAGE: (0, _normalizepagepath.normalizePagePath)(page),
VAR_DEFINITION_PATHNAME: page
});
if ((0, _worker.isInstrumentationHookFile)(page)) {
// When we're building the instrumentation page (only when the
// instrumentation file conflicts with a page also labeled
// /instrumentation) hoist the `register` method.
file += '\nexport const register = hoist(userland, "register")';
}
return file;
};
const loadPagesAPI = async ({ page, absolutePagePath, preferredRegion, middlewareConfigBase64 }, buildInfo)=>{
const middlewareConfig = (0, _utils.decodeFromBase64)(middlewareConfigBase64);
// Attach build info to the module.
buildInfo.route = {
page,
absolutePagePath,
preferredRegion,
middlewareConfig
};
return await (0, _loadentrypoint.loadEntrypoint)("pages-api", {
VAR_USERLAND: absolutePagePath,
VAR_DEFINITION_PAGE: (0, _normalizepagepath.normalizePagePath)(page),
VAR_DEFINITION_PATHNAME: page
});
};
/**
* Handles the `next-route-loader` options.
* @returns the loader definition function
*/ const loader = async function() {
if (!this._module) {
throw new Error("Invariant: expected this to reference a module");
}
const buildInfo = (0, _getmodulebuildinfo.getModuleBuildInfo)(this._module);
const opts = this.getOptions();
switch(opts.kind){
case _routekind.RouteKind.PAGES:
{
return await loadPages(opts, buildInfo);
}
case _routekind.RouteKind.PAGES_API:
{
return await loadPagesAPI(opts, buildInfo);
}
default:
{
throw new Error("Invariant: Unexpected route kind");
}
}
};
const _default = loader;
//# sourceMappingURL=index.js.map