import * as Solid from '@solidjs/web';
import { makeSsrSerovalPlugin } from '@tanstack/router-core';
export const renderRouterToString = ({ router, responseHeaders, children, }) => {
    try {
        const serializationAdapters = router.options?.serializationAdapters ||
            router.options.ssr?.serializationAdapters;
        const serovalPlugins = serializationAdapters?.map((adapter) => {
            const plugin = makeSsrSerovalPlugin(adapter, { didRun: false });
            return plugin;
        });
        let html = Solid.renderToString(children, {
            nonce: router.options.ssr?.nonce,
            plugins: serovalPlugins,
        });
        router.serverSsr.setRenderFinished();
        const injectedHtml = router.serverSsr.takeBufferedHtml();
        if (injectedHtml) {
            html = html.replace(`</body>`, () => `${injectedHtml}</body>`);
        }
        return new Response(`<!DOCTYPE html>${html}`, {
            status: router.stores.statusCode.state,
            headers: responseHeaders,
        });
    }
    catch (error) {
        console.error('Render to string error:', error);
        return new Response('Internal Server Error', {
            status: 500,
            headers: responseHeaders,
        });
    }
    finally {
        router.serverSsr?.cleanup();
    }
};
//# sourceMappingURL=renderRouterToString.jsx.map