UNPKG

@tanstack/router-core

Version:

Modern and scalable routing for React applications

49 lines (48 loc) 1.5 kB
//#region src/ssr/handlerCallback.ts function isSsrResponse(value) { return typeof value === "object" && value !== null && "response" in value && "serverSsrCleanup" in value; } function normalizeSsrResponse(result) { return isSsrResponse(result) ? result : { response: result, serverSsrCleanup: "none" }; } function createSsrStreamResponse(router, response) { if (!response.body) throw new Error("Invariant failed: SSR stream response requires a body"); let disposed = false; return { response, serverSsrCleanup: "stream", async dispose(reason) { if (disposed) return; disposed = true; try { await response.body.cancel(reason); } catch {} router.serverSsr?.cleanup(); } }; } async function replaceSsrResponse(result, response, reason) { const ssrResponse = normalizeSsrResponse(result); if (ssrResponse.serverSsrCleanup === "stream") await ssrResponse.dispose(reason); return { response, serverSsrCleanup: "none" }; } async function stripSsrResponseBody(result, reason) { const ssrResponse = normalizeSsrResponse(result); if (ssrResponse.serverSsrCleanup === "stream") await ssrResponse.dispose(reason); return { response: new Response(null, ssrResponse.response), serverSsrCleanup: "none" }; } function defineHandlerCallback(handler) { return handler; } //#endregion export { createSsrStreamResponse, defineHandlerCallback, isSsrResponse, normalizeSsrResponse, replaceSsrResponse, stripSsrResponseBody }; //# sourceMappingURL=handlerCallback.js.map