UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

56 lines (55 loc) 1.94 kB
const require_runtime = require("./_virtual/_rolldown/runtime.cjs"); const require_useRouter = require("./useRouter.cjs"); const require_Asset = require("./Asset.cjs"); let _solidjs_web = require("@solidjs/web"); let solid_js = require("solid-js"); solid_js = require_runtime.__toESM(solid_js); //#region src/Scripts.tsx var Scripts = () => { const router = require_useRouter.useRouter(); const nonce = router.options.ssr?.nonce; const activeMatches = solid_js.createMemo(() => router.stores.activeMatchesSnapshot.state); const assetScripts = solid_js.createMemo(() => { const assetScripts = []; const manifest = router.ssr?.manifest; if (!manifest) return []; activeMatches().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 = solid_js.createMemo(() => activeMatches().map((match) => match.scripts).flat(1).filter(Boolean).map(({ children, ...script }) => ({ tag: "script", attrs: { ...script, nonce }, children }))); const serverBufferedScript = router.serverSsr ? router.serverSsr.takeBufferedScripts() : void 0; const allScripts = solid_js.createMemo(() => { const result = [...scripts(), ...assetScripts()]; if (serverBufferedScript) result.unshift(serverBufferedScript); return result; }); return (0, _solidjs_web.createComponent)(_solidjs_web.NoHydration, { get children() { return (0, _solidjs_web.createComponent)(solid_js.For, { get each() { return allScripts(); }, children: (asset) => { return (0, _solidjs_web.createComponent)(require_Asset.Asset, solid_js.untrack(asset)); } }); } }); }; //#endregion exports.Scripts = Scripts; //# sourceMappingURL=Scripts.cjs.map