@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
29 lines (28 loc) • 1.41 kB
JavaScript
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
let _tanstack_router_core = require("@tanstack/router-core");
let solid_js_web = require("solid-js/web");
solid_js_web = require_runtime.__toESM(solid_js_web);
let _tanstack_router_core_ssr_server = require("@tanstack/router-core/ssr/server");
let isbot = require("isbot");
//#region src/ssr/renderRouterToStream.tsx
var renderRouterToStream = async ({ request, router, responseHeaders, children }) => {
const { writable, readable } = new TransformStream();
const docType = solid_js_web.ssr("<!DOCTYPE html>");
const serovalPlugins = (router.options?.serializationAdapters || router.options.ssr?.serializationAdapters)?.map((adapter) => {
return (0, _tanstack_router_core.makeSsrSerovalPlugin)(adapter, { didRun: false });
});
const stream = solid_js_web.renderToStream(() => [docType, (0, solid_js_web.memo)(children)], {
nonce: router.options.ssr?.nonce,
plugins: serovalPlugins
});
if ((0, isbot.isbot)(request.headers.get("User-Agent"))) await stream;
stream.pipeTo(writable);
const responseStream = (0, _tanstack_router_core_ssr_server.transformReadableStreamWithRouter)(router, readable);
return new Response(responseStream, {
status: router.state.statusCode,
headers: responseHeaders
});
};
//#endregion
exports.renderRouterToStream = renderRouterToStream;
//# sourceMappingURL=renderRouterToStream.cjs.map