{"version":3,"file":"renderRouterToString.cjs","names":[],"sources":["../../../src/ssr/renderRouterToString.tsx"],"sourcesContent":["import ReactDOMServer from 'react-dom/server'\nimport type { ReactNode } from 'react'\nimport type { AnyRouter } from '@tanstack/router-core'\n\nexport const renderRouterToString = async ({\n  router,\n  responseHeaders,\n  children,\n}: {\n  router: AnyRouter\n  responseHeaders: Headers\n  children: ReactNode\n}) => {\n  try {\n    let html = ReactDOMServer.renderToString(children)\n    router.serverSsr!.setRenderFinished()\n\n    const injectedHtml = router.serverSsr!.takeBufferedHtml()\n    if (injectedHtml) {\n      html = html.replace(`</body>`, () => `${injectedHtml}</body>`)\n    }\n\n    return new Response(`<!DOCTYPE html>${html}`, {\n      status: router.stores.statusCode.state,\n      headers: responseHeaders,\n    })\n  } catch (error) {\n    console.error('Render to string error:', error)\n    return new Response('Internal Server Error', {\n      status: 500,\n      headers: responseHeaders,\n    })\n  } finally {\n    router.serverSsr?.cleanup()\n  }\n}\n"],"mappings":";;;;AAIA,IAAa,uBAAuB,OAAO,EACzC,QACA,iBACA,eAKI;AACJ,KAAI;EACF,IAAI,OAAO,iBAAA,QAAe,eAAe,SAAS;AAClD,SAAO,UAAW,mBAAmB;EAErC,MAAM,eAAe,OAAO,UAAW,kBAAkB;AACzD,MAAI,aACF,QAAO,KAAK,QAAQ,iBAAiB,GAAG,aAAa,SAAS;AAGhE,SAAO,IAAI,SAAS,kBAAkB,QAAQ;GAC5C,QAAQ,OAAO,OAAO,WAAW;GACjC,SAAS;GACV,CAAC;UACK,OAAO;AACd,UAAQ,MAAM,2BAA2B,MAAM;AAC/C,SAAO,IAAI,SAAS,yBAAyB;GAC3C,QAAQ;GACR,SAAS;GACV,CAAC;WACM;AACR,SAAO,WAAW,SAAS"}