UNPKG

one

Version:

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

143 lines (140 loc) 4.78 kB
"use strict"; 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: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__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: true }), mod); var resolveResponse_exports = {}; __export(resolveResponse_exports, { resolveAPIEndpoint: () => resolveAPIEndpoint, resolveResponse: () => resolveResponse, withRequestContext: () => withRequestContext }); module.exports = __toCommonJS(resolveResponse_exports); var import_isResponse = require("../utils/isResponse.native.js"); var import_one_server_only = require("./one-server-only.native.js"); function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return !!right[Symbol.hasInstance](left); } else { return left instanceof right; } } function _type_of(obj) { "@swc/helpers - typeof"; return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; } var _nextId = 1; function createId() { return { _id: _nextId++ }; } async function resolveResponse(getResponse) { var store = import_one_server_only.requestAsyncLocalStore !== null && import_one_server_only.requestAsyncLocalStore !== void 0 ? import_one_server_only.requestAsyncLocalStore : globalThis["__vxrnrequestAsyncLocalStore"]; if (store) { var id = createId(); var response; await store.run(id, async function () { try { response = await getResponse(); response = await getResponseWithAddedHeaders(response, id); } catch (err) { if ((0, import_isResponse.isResponse)(err)) { response = err; } else { throw err; } } }); return response; } return (0, import_one_server_only.runWithAsyncLocalContext)(async function (id2) { try { var response2 = await getResponse(); return await getResponseWithAddedHeaders(response2, id2); } catch (err) { if ((0, import_isResponse.isResponse)(err)) { return err; } throw err; } }); } function withRequestContext(fn) { var store = import_one_server_only.requestAsyncLocalStore; if (store) { var id = createId(); return store.run(id, fn); } return fn(); } function resolveAPIEndpoint(runEndpoint, request, params) { return resolveResponse(async function () { var imported = await runEndpoint(); var requestType = request.method || "GET"; var 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) { var _globalThis___vxrnasyncHeadersCache; var cache = (_globalThis___vxrnasyncHeadersCache = globalThis["__vxrnasyncHeadersCache"]) !== null && _globalThis___vxrnasyncHeadersCache !== void 0 ? _globalThis___vxrnasyncHeadersCache : import_one_server_only.asyncHeadersCache; var asyncHeaders = cache.get(id); if (asyncHeaders) { try { if (_instanceof(response, Response)) { var cloned = response.clone(); var headers = new Headers(); (0, import_one_server_only.mergeHeaders)(headers, cloned.headers); (0, import_one_server_only.mergeHeaders)(headers, asyncHeaders); response = new Response(cloned.body, { status: cloned.status, statusText: cloned.statusText, headers }); } else { if (response && (typeof response === "undefined" ? "undefined" : _type_of(response)) === "object") { response = Response.json(response, { headers: asyncHeaders }); } else { var headers1 = new Headers(asyncHeaders); if (!headers1.has("content-type")) { headers1.set("content-type", "text/html"); } response = new Response(response, { headers: headers1 }); } } } catch (err) { console.error(` [one] error adding headers: ${err}`); } } return response; } //# sourceMappingURL=resolveResponse.native.js.map