UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

1 lines 3.5 kB
{"version":3,"file":"Scripts.cjs","names":["Solid","Asset","useRouter","RouterManagedTag","Scripts","router","nonce","options","ssr","activeMatches","createMemo","stores","activeMatchesSnapshot","state","assetScripts","Array","manifest","map","match","looseRoutesById","routeId","forEach","route","routes","id","assets","filter","d","tag","asset","push","attrs","children","scripts","flat","Boolean","script","serverBufferedScript","undefined","serverSsr","takeBufferedScripts","allScripts","unshift","_$memo","i","_$createComponent"],"sources":["../../src/Scripts.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { Asset } from './Asset'\nimport { useRouter } from './useRouter'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport const Scripts = () => {\n const router = useRouter()\n const nonce = router.options.ssr?.nonce\n const activeMatches = Solid.createMemo(\n () => router.stores.activeMatchesSnapshot.state,\n )\n const assetScripts = Solid.createMemo(() => {\n const assetScripts: Array<RouterManagedTag> = []\n const manifest = router.ssr?.manifest\n\n if (!manifest) {\n return []\n }\n\n activeMatches()\n .map((match) => router.looseRoutesById[match.routeId]!)\n .forEach((route) =>\n manifest.routes[route.id]?.assets\n ?.filter((d) => d.tag === 'script')\n .forEach((asset) => {\n assetScripts.push({\n tag: 'script',\n attrs: { ...asset.attrs, nonce },\n children: asset.children,\n } as any)\n }),\n )\n\n return assetScripts\n })\n\n const scripts = Solid.createMemo(() =>\n (\n activeMatches()\n .map((match) => match.scripts!)\n .flat(1)\n .filter(Boolean) as Array<RouterManagedTag>\n ).map(({ children, ...script }) => ({\n tag: 'script',\n attrs: {\n ...script,\n nonce,\n },\n children,\n })),\n )\n\n let serverBufferedScript: RouterManagedTag | undefined = undefined\n\n if (router.serverSsr) {\n serverBufferedScript = router.serverSsr.takeBufferedScripts()\n }\n\n const allScripts = [\n ...scripts(),\n ...assetScripts(),\n ] as Array<RouterManagedTag>\n\n if (serverBufferedScript) {\n allScripts.unshift(serverBufferedScript)\n }\n\n return (\n <>\n {allScripts.map((asset, i) => (\n <Asset {...asset} />\n ))}\n </>\n )\n}\n"],"mappings":";;;;;;;AAKA,IAAaI,gBAAgB;CAC3B,MAAMC,SAASH,kBAAAA,WAAW;CAC1B,MAAMI,QAAQD,OAAOE,QAAQC,KAAKF;CAClC,MAAMG,gBAAgBT,SAAMU,iBACpBL,OAAOM,OAAOC,sBAAsBC,MAC3C;CACD,MAAMC,eAAed,SAAMU,iBAAiB;EAC1C,MAAMI,eAAwC,EAAE;EAChD,MAAME,WAAWX,OAAOG,KAAKQ;AAE7B,MAAI,CAACA,SACH,QAAO,EAAE;AAGXP,iBAAe,CACZQ,KAAKC,UAAUb,OAAOc,gBAAgBD,MAAME,SAAU,CACtDC,SAASC,UACRN,SAASO,OAAOD,MAAME,KAAKC,QACvBC,QAAQC,MAAMA,EAAEC,QAAQ,SAAS,CAClCP,SAASQ,UAAU;AAClBf,gBAAagB,KAAK;IAChBF,KAAK;IACLG,OAAO;KAAE,GAAGF,MAAME;KAAOzB;KAAO;IAChC0B,UAAUH,MAAMG;IACjB,CAAQ;IAEf,CAAC;AAEH,SAAOlB;GACP;CAEF,MAAMmB,UAAUjC,SAAMU,iBAElBD,eAAe,CACZQ,KAAKC,UAAUA,MAAMe,QAAS,CAC9BC,KAAK,EAAE,CACPR,OAAOS,QAAQ,CAClBlB,KAAK,EAAEe,UAAU,GAAGI,cAAc;EAClCR,KAAK;EACLG,OAAO;GACL,GAAGK;GACH9B;GACD;EACD0B;EACD,EACH,CAAC;CAED,IAAIK,uBAAqDC,KAAAA;AAEzD,KAAIjC,OAAOkC,UACTF,wBAAuBhC,OAAOkC,UAAUC,qBAAqB;CAG/D,MAAMC,aAAa,CACjB,GAAGR,SAAS,EACZ,GAAGnB,cAAc,CAClB;AAED,KAAIuB,qBACFI,YAAWC,QAAQL,qBAAqB;AAG1C,SAAA,GAAA,aAAA,YAEKI,WAAWxB,KAAKY,OAAOe,OAAAA,GAAAA,aAAAA,iBACrB3C,cAAAA,OAAU4B,MACZ,CAAC,CAAA"}