UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

79 lines (78 loc) 3.3 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: !0 }); }, __copyProps = (to, from, except, desc) => { if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod); var resolveResponse_exports = {}; __export(resolveResponse_exports, { resolveAPIEndpoint: () => resolveAPIEndpoint, resolveResponse: () => resolveResponse }); module.exports = __toCommonJS(resolveResponse_exports); var import_isResponse = require("../utils/isResponse"), import_one_server_only = require("./one-server-only"); function resolveResponse(getResponse) { return new Promise((res, rej) => { (0, import_one_server_only.runWithAsyncLocalContext)(async (id) => { try { const response = await getResponse(), modifiedResponse = await getResponseWithAddedHeaders(response, id); res(modifiedResponse); } catch (err) { (0, import_isResponse.isResponse)(err) ? res(err) : rej(err); } }); }); } function resolveAPIEndpoint(runEndpoint, request, params) { return resolveResponse(async () => { const imported = await runEndpoint(), requestType = request.method || "GET", handler = imported[requestType] || imported.default; if (!handler) { console.warn(`No handler found for request ${requestType}`); return; } return await handler(request, { params }); }); } async function getResponseWithAddedHeaders(response, id) { const asyncHeaders = import_one_server_only.asyncHeadersCache.get(id); if (asyncHeaders) try { response instanceof Response ? (0, import_one_server_only.mergeHeaders)(response.headers, asyncHeaders) : response && typeof response == "object" ? response = Response.json(response, { headers: asyncHeaders }) : response = new Response(response, { headers: asyncHeaders }); } catch (err) { if (`${err}`.includes("immutable")) { const body = response.body ? await streamToString(response.body) : ""; response = new Response(body, { headers: response.headers, status: response.status, statusText: response.statusText }), (0, import_one_server_only.mergeHeaders)(response.headers, asyncHeaders); } else console.error(` [one] error adding headers: ${err}`); } return response; } async function streamToString(stream) { const reader = stream.getReader(), decoder = new TextDecoder(); let result = ""; try { for (; ; ) { const { done, value } = await reader.read(); if (done) break; result += decoder.decode(value, { stream: !0 }); } } catch (error) { console.error("Error reading the stream:", error); } finally { reader.releaseLock(); } return result; } //# sourceMappingURL=resolveResponse.js.map