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