123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.run = exports.getRuntimeContext = exports.ErrorSource = void 0;
- var _middleware = require("next/dist/compiled/@next/react-dev-overlay/dist/middleware");
- var _context = require("./context");
- var _bodyStreams = require("../../body-streams");
- const ErrorSource = Symbol("SandboxError");
- exports.ErrorSource = ErrorSource;
- const FORBIDDEN_HEADERS = [
- "content-length",
- "content-encoding",
- "transfer-encoding",
- ];
- /**
- * Decorates the runner function making sure all errors it can produce are
- * tagged with `edge-server` so they can properly be rendered in dev.
- */ function withTaggedErrors(fn) {
- return (params)=>{
- return fn(params).then((result)=>{
- var ref;
- return {
- ...result,
- waitUntil: result == null ? void 0 : (ref = result.waitUntil) == null ? void 0 : ref.catch((error)=>{
- // TODO: used COMPILER_NAMES.edgeServer instead. Verify that it does not increase the runtime size.
- throw (0, _middleware).getServerError(error, "edge-server");
- })
- };
- }).catch((error)=>{
- // TODO: used COMPILER_NAMES.edgeServer instead
- throw (0, _middleware).getServerError(error, "edge-server");
- });
- };
- }
- const getRuntimeContext = async (params)=>{
- var _onWarning;
- const { runtime , evaluateInContext } = await (0, _context).getModuleContext({
- moduleName: params.name,
- onWarning: (_onWarning = params.onWarning) != null ? _onWarning : ()=>{},
- useCache: params.useCache !== false,
- env: params.env,
- edgeFunctionEntry: params.edgeFunctionEntry,
- distDir: params.distDir
- });
- for (const paramPath of params.paths){
- evaluateInContext(paramPath);
- }
- return runtime;
- };
- exports.getRuntimeContext = getRuntimeContext;
- const run = withTaggedErrors(async (params)=>{
- var ref;
- const runtime = await getRuntimeContext(params);
- const subreq = params.request.headers[`x-middleware-subrequest`];
- const subrequests = typeof subreq === "string" ? subreq.split(":") : [];
- if (subrequests.includes(params.name)) {
- return {
- waitUntil: Promise.resolve(),
- response: new runtime.context.Response(null, {
- headers: {
- "x-middleware-next": "1"
- }
- })
- };
- }
- const edgeFunction = runtime.context._ENTRIES[`middleware_${params.name}`].default;
- const cloned = ![
- "HEAD",
- "GET"
- ].includes(params.request.method) ? (ref = params.request.body) == null ? void 0 : ref.cloneBodyStream() : undefined;
- try {
- const result = await edgeFunction({
- request: {
- ...params.request,
- body: cloned && (0, _bodyStreams).requestToBodyStream(runtime.context, cloned)
- }
- });
- for (const headerName of FORBIDDEN_HEADERS){
- result.response.headers.delete(headerName);
- }
- return result;
- } finally{
- var ref1;
- await ((ref1 = params.request.body) == null ? void 0 : ref1.finalize());
- }
- });
- exports.run = run;
- //# sourceMappingURL=sandbox.js.map
|