UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

28 lines (27 loc) 1.19 kB
import { makeSsrSerovalPlugin } from "@tanstack/router-core"; import * as Solid from "solid-js/web"; import { memo } from "solid-js/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 docType = Solid.ssr("<!DOCTYPE html>"); const serovalPlugins = (router.options?.serializationAdapters || router.options.ssr?.serializationAdapters)?.map((adapter) => { return makeSsrSerovalPlugin(adapter, { didRun: false }); }); const stream = Solid.renderToStream(() => [docType, memo(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.state.statusCode, headers: responseHeaders }); }; //#endregion export { renderRouterToStream }; //# sourceMappingURL=renderRouterToStream.js.map