UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

43 lines (42 loc) 1.65 kB
require("./_virtual/_rolldown/runtime.cjs"); const require_useRouter = require("./useRouter.cjs"); const require_useRouterState = require("./useRouterState.cjs"); const require_Asset = require("./Asset.cjs"); let solid_js_web = require("solid-js/web"); //#region src/Scripts.tsx var Scripts = () => { const router = require_useRouter.useRouter(); const nonce = router.options.ssr?.nonce; const assetScripts = require_useRouterState.useRouterState({ select: (state) => { const assetScripts = []; const manifest = router.ssr?.manifest; if (!manifest) return []; state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach((route) => manifest.routes[route.id]?.assets?.filter((d) => d.tag === "script").forEach((asset) => { assetScripts.push({ tag: "script", attrs: { ...asset.attrs, nonce }, children: asset.children }); })); return assetScripts; } }); const scripts = require_useRouterState.useRouterState({ select: (state) => ({ scripts: state.matches.map((match) => match.scripts).flat(1).filter(Boolean).map(({ children, ...script }) => ({ tag: "script", attrs: { ...script, nonce }, children })) }) }); let serverBufferedScript = void 0; if (router.serverSsr) serverBufferedScript = router.serverSsr.takeBufferedScripts(); const allScripts = [...scripts().scripts, ...assetScripts()]; if (serverBufferedScript) allScripts.unshift(serverBufferedScript); return (0, solid_js_web.memo)(() => allScripts.map((asset, i) => (0, solid_js_web.createComponent)(require_Asset.Asset, asset))); }; //#endregion exports.Scripts = Scripts; //# sourceMappingURL=Scripts.cjs.map