UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

26 lines (25 loc) 1.09 kB
import { makeSsrSerovalPlugin } from "@tanstack/router-core"; import * as Solid from "@solidjs/web"; import { transformReadableStreamWithRouter } from "@tanstack/router-core/ssr/server"; import { isbot } from "isbot"; //#region src/ssr/renderRouterToStream.tsx var renderRouterToStream = async ({ request, router, responseHeaders, children }) => { const { writable, readable } = new TransformStream(); const serovalPlugins = (router.options?.serializationAdapters || router.options.ssr?.serializationAdapters)?.map((adapter) => { return makeSsrSerovalPlugin(adapter, { didRun: false }); }); const stream = Solid.renderToStream(() => children, { nonce: router.options.ssr?.nonce, plugins: serovalPlugins }); if (isbot(request.headers.get("User-Agent"))) await stream; stream.pipeTo(writable); const responseStream = transformReadableStreamWithRouter(router, readable); return new Response(responseStream, { status: router.stores.statusCode.state, headers: responseHeaders }); }; //#endregion export { renderRouterToStream }; //# sourceMappingURL=renderRouterToStream.js.map