import { NodeResponse, NodeResponseHeaders } from "./response-6LJL3Qlz.mjs"; //#region src/adapters/_node/call.ts function callNodeHandler(handler, req) { const isMiddleware = handler.length > 2; const nodeCtx = req.runtime?.node; if (!nodeCtx || !nodeCtx.req || !nodeCtx.res) throw new Error("Node.js runtime context is not available."); const { req: nodeReq, res: nodeRes } = nodeCtx; let _headers; const webRes = new NodeResponse(void 0, { get status() { return nodeRes.statusCode; }, get statusText() { return nodeRes.statusMessage; }, get headers() { if (!_headers) _headers = new NodeResponseHeaders(nodeCtx); return _headers; } }); return new Promise((resolve, reject) => { nodeRes.once("close", () => resolve(webRes)); nodeRes.once("finish", () => resolve(webRes)); nodeRes.once("error", (error) => reject(error)); let streamPromise; nodeRes.once("pipe", (stream) => { streamPromise = new Promise((resolve$1) => { stream.once("end", () => resolve$1(webRes)); stream.once("error", (error) => reject(error)); }); }); try { if (isMiddleware) Promise.resolve(handler(nodeReq, nodeRes, (error) => error ? reject(error) : streamPromise || resolve(webRes))).catch((error) => reject(error)); else Promise.resolve(handler(nodeReq, nodeRes)).then(() => streamPromise || webRes); } catch (error) { reject(error); } }); } //#endregion export { callNodeHandler };