UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

53 lines (52 loc) 1.98 kB
const require_runtime = require("./_virtual/_rolldown/runtime.cjs"); const require_useRouter = require("./useRouter.cjs"); const require_Asset = require("./Asset.cjs"); let solid_js_web = require("solid-js/web"); let solid_js = require("solid-js"); solid_js = require_runtime.__toESM(solid_js, 1); let _tanstack_router_core_isServer = require("@tanstack/router-core/isServer"); //#region src/Scripts.tsx var Scripts = () => { const router = require_useRouter.useRouter(); const nonce = router.options.ssr?.nonce; const getAssetScripts = (matches) => { const assetScripts = []; const manifest = router.ssr?.manifest; if (!manifest) return []; for (const match of matches) { const scripts = manifest.routes[match.routeId]?.scripts; if (!scripts) continue; for (const asset of scripts) assetScripts.push({ tag: "script", attrs: { ...asset.attrs, nonce }, children: asset.children }); } return assetScripts; }; const getScripts = (matches) => matches.map((match) => match.scripts).flat(1).filter(Boolean).map(({ children, ...script }) => ({ tag: "script", attrs: { ...script, nonce }, children })); const activeMatches = solid_js.createMemo(() => router.stores.matches.get()); const assetScripts = solid_js.createMemo(() => getAssetScripts(activeMatches())); return renderScripts(router, solid_js.createMemo(() => getScripts(activeMatches()))(), assetScripts()); }; function renderScripts(router, scripts, assetScripts) { const allScripts = [...scripts, ...assetScripts]; if ((_tanstack_router_core_isServer.isServer ?? router.isServer) && router.serverSsr) { const serverBufferedScript = router.serverSsr.takeBufferedScripts(); if (serverBufferedScript) allScripts.unshift(serverBufferedScript); } return (0, solid_js_web.memo)(() => allScripts.map((asset) => (0, solid_js_web.createComponent)(require_Asset.Asset, asset))); } //#endregion exports.Scripts = Scripts; //# sourceMappingURL=Scripts.cjs.map