68 lines
2.5 KiB
JavaScript
68 lines
2.5 KiB
JavaScript
"use strict";
|
|
|
|
// src/vercel-request-context.ts
|
|
var SYMBOL_FOR_REQ_CONTEXT = Symbol.for("@vercel/request-context");
|
|
function getContext() {
|
|
const fromSymbol = globalThis;
|
|
return fromSymbol[SYMBOL_FOR_REQ_CONTEXT]?.get?.() ?? {};
|
|
}
|
|
|
|
// src/next-request-context.ts
|
|
var import_async_hooks = require("async_hooks");
|
|
var name = "@next/request-context";
|
|
var NEXT_REQUEST_CONTEXT_SYMBOL = Symbol.for(name);
|
|
var INTERNAL_STORAGE_FIELD_SYMBOL = Symbol.for("internal.storage");
|
|
function getOrCreateContextSingleton() {
|
|
const _globalThis = globalThis;
|
|
if (!_globalThis[NEXT_REQUEST_CONTEXT_SYMBOL]) {
|
|
const storage = new import_async_hooks.AsyncLocalStorage();
|
|
const Context = {
|
|
get: () => storage.getStore(),
|
|
[INTERNAL_STORAGE_FIELD_SYMBOL]: storage
|
|
};
|
|
_globalThis[NEXT_REQUEST_CONTEXT_SYMBOL] = Context;
|
|
}
|
|
return _globalThis[NEXT_REQUEST_CONTEXT_SYMBOL];
|
|
}
|
|
var NextRequestContext = getOrCreateContextSingleton();
|
|
function withNextRequestContext(value, callback) {
|
|
const storage = NextRequestContext[INTERNAL_STORAGE_FIELD_SYMBOL];
|
|
return storage.run(value, callback);
|
|
}
|
|
|
|
// src/server-launcher.ts
|
|
process.chdir(__dirname);
|
|
var region = process.env.VERCEL_REGION || process.env.NOW_REGION;
|
|
if (!process.env.NODE_ENV) {
|
|
process.env.NODE_ENV = region === "dev1" ? "development" : "production";
|
|
}
|
|
if (process.env.NODE_ENV !== "production" && region !== "dev1") {
|
|
console.warn(
|
|
`Warning: NODE_ENV was incorrectly set to "${process.env.NODE_ENV}", this value is being overridden to "production"`
|
|
);
|
|
process.env.NODE_ENV = "production";
|
|
}
|
|
// @preserve pre-next-server-target
|
|
var NextServer = require("__NEXT_SERVER_PATH__").default;
|
|
// @preserve next-server-preload-target
|
|
var conf = __NEXT_CONFIG__;
|
|
var nextServer = new NextServer({
|
|
conf,
|
|
dir: ".",
|
|
minimalMode: true,
|
|
customServer: false
|
|
});
|
|
var serve = (handler) => async (req, res) => {
|
|
const vercelContext = getContext();
|
|
await withNextRequestContext({ waitUntil: vercelContext.waitUntil }, () => {
|
|
// @preserve entryDirectory handler
|
|
return handler(req, res);
|
|
});
|
|
};
|
|
module.exports = serve(nextServer.getRequestHandler());
|
|
if ((conf.experimental?.ppr || conf.experimental?.cacheComponents) && "getRequestHandlerWithMetadata" in nextServer && typeof nextServer.getRequestHandlerWithMetadata === "function") {
|
|
module.exports.getRequestHandlerWithMetadata = (metadata) => serve(nextServer.getRequestHandlerWithMetadata(metadata));
|
|
}
|
|
if (process.env.NEXT_PRIVATE_PRELOAD_ENTRIES) {
|
|
module.exports.preload = nextServer.unstable_preloadEntries.bind(nextServer);
|
|
}
|