UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

27 lines 1.19 kB
import * as Solid from '@solidjs/web'; import { isbot } from 'isbot'; import { transformReadableStreamWithRouter } from '@tanstack/router-core/ssr/server'; import { makeSsrSerovalPlugin } from '@tanstack/router-core'; export const renderRouterToStream = async ({ request, router, responseHeaders, children, }) => { const { writable, readable } = new TransformStream(); const serializationAdapters = router.options?.serializationAdapters || router.options.ssr?.serializationAdapters; const serovalPlugins = serializationAdapters?.map((adapter) => { const plugin = makeSsrSerovalPlugin(adapter, { didRun: false }); return plugin; }); 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, }); }; //# sourceMappingURL=renderRouterToStream.jsx.map