{"version":3,"file":"renderOptions.cjs","names":[],"sources":["../../../src/ssr/renderOptions.ts"],"sourcesContent":["import { makeSsrSerovalPlugin } from '@tanstack/router-core/ssr/server'\nimport type { renderToStream } from 'solid-js/web'\nimport type { AnyRouter, AnySerializationAdapter } from '@tanstack/router-core'\n\n// Adapters are module-level singletons, so their SSR plugins are cached per\n// adapter rather than rebuilt for every request.\nconst pluginCache = new WeakMap<\n  AnySerializationAdapter,\n  ReturnType<typeof makeSsrSerovalPlugin>\n>()\n\nfunction getPlugin(adapter: AnySerializationAdapter) {\n  let plugin = pluginCache.get(adapter)\n  if (!plugin) {\n    plugin = makeSsrSerovalPlugin(adapter)\n    pluginCache.set(adapter, plugin)\n  }\n  return plugin\n}\n\n/** Solid renderer options shared by the stream and string paths. */\nexport function getSolidRenderOptions(router: AnyRouter) {\n  return {\n    nonce: router.options.ssr?.nonce,\n    // `plugins` is honoured by Solid's server runtime but absent from its\n    // public option type.\n    plugins: router.options.serializationAdapters?.map(getPlugin),\n  } as Parameters<typeof renderToStream>[1]\n}\n"],"mappings":";;AAMA,IAAM,8BAAc,IAAI,QAGtB;AAEF,SAAS,UAAU,SAAkC;CACnD,IAAI,SAAS,YAAY,IAAI,OAAO;CACpC,IAAI,CAAC,QAAQ;EACX,UAAA,GAAA,iCAAA,sBAA8B,OAAO;EACrC,YAAY,IAAI,SAAS,MAAM;CACjC;CACA,OAAO;AACT;;AAGA,SAAgB,sBAAsB,QAAmB;CACvD,OAAO;EACL,OAAO,OAAO,QAAQ,KAAK;EAG3B,SAAS,OAAO,QAAQ,uBAAuB,IAAI,SAAS;CAC9D;AACF"}