@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
54 lines (53 loc) • 1.91 kB
JavaScript
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
const require_useRouter = require("./useRouter.cjs");
const require_Asset = require("./Asset.cjs");
let _tanstack_router_core = require("@tanstack/router-core");
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 scripts = solid_js.createMemo((previous) => {
const matches = (0, _tanstack_router_core._getAssetMatches)(router.stores.matches.get());
const next = [];
const assets = [];
const manifest = router.ssr?.manifest;
for (const match of matches) {
for (const script of match.scripts ?? []) {
if (!script) continue;
const { children, ...attrs } = script;
next.push({
tag: "script",
attrs: {
...attrs,
nonce
},
children
});
}
for (const asset of manifest?.routes[match.routeId]?.scripts ?? []) assets.push({
tag: "script",
attrs: {
...asset.attrs,
nonce
},
children: asset.children
});
}
next.push(...assets);
return previous ? (0, _tanstack_router_core.replaceEqualDeep)(previous, next) : next;
});
const serverBufferedScript = (_tanstack_router_core_isServer.isServer ?? router.isServer) && router.serverSsr ? router.serverSsr.takeBufferedScripts() : void 0;
return [serverBufferedScript && (0, solid_js_web.createComponent)(require_Asset.Asset, serverBufferedScript), (0, solid_js_web.createComponent)(solid_js.For, {
get each() {
return scripts();
},
children: (asset) => (0, solid_js_web.createComponent)(require_Asset.Asset, asset)
})];
};
//#endregion
exports.Scripts = Scripts;
//# sourceMappingURL=Scripts.cjs.map