UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

1 lines 3.52 kB
{"version":3,"file":"Scripts.cjs","names":["Asset","useRouterState","useRouter","RouterManagedTag","Scripts","router","nonce","options","ssr","assetScripts","select","state","Array","manifest","matches","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 { Asset } from './Asset'\nimport { useRouterState } from './useRouterState'\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 assetScripts = useRouterState({\n select: (state) => {\n const assetScripts: Array<RouterManagedTag> = []\n const manifest = router.ssr?.manifest\n\n if (!manifest) {\n return []\n }\n\n state.matches\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\n const scripts = useRouterState({\n select: (state) => ({\n scripts: (\n state.matches\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\n let serverBufferedScript: RouterManagedTag | undefined = undefined\n\n if (router.serverSsr) {\n serverBufferedScript = router.serverSsr.takeBufferedScripts()\n }\n\n const allScripts = [\n ...scripts().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,eAAeR,uBAAAA,eAAe,EAClCS,SAASC,UAAU;EACjB,MAAMF,eAAwC,EAAE;EAChD,MAAMI,WAAWR,OAAOG,KAAKK;AAE7B,MAAI,CAACA,SACH,QAAO,EAAE;AAGXF,QAAMG,QACHC,KAAKC,UAAUX,OAAOY,gBAAgBD,MAAME,SAAU,CACtDC,SAASC,UACRP,SAASQ,OAAOD,MAAME,KAAKC,QACvBC,QAAQC,MAAMA,EAAEC,QAAQ,SAAS,CAClCP,SAASQ,UAAU;AAClBlB,gBAAamB,KAAK;IAChBF,KAAK;IACLG,OAAO;KAAE,GAAGF,MAAME;KAAOvB;KAAO;IAChCwB,UAAUH,MAAMG;IACjB,CAAQ;IAEf,CAAC;AAEH,SAAOrB;IAEV,CAAC;CAEF,MAAMsB,UAAU9B,uBAAAA,eAAe,EAC7BS,SAASC,WAAW,EAClBoB,SACEpB,MAAMG,QACHC,KAAKC,UAAUA,MAAMe,QAAS,CAC9BC,KAAK,EAAE,CACPR,OAAOS,QAAQ,CAClBlB,KAAK,EAAEe,UAAU,GAAGI,cAAc;EAClCR,KAAK;EACLG,OAAO;GACL,GAAGK;GACH5B;GACD;EACDwB;EACD,EAAC,EACH,GACF,CAAC;CAEF,IAAIK,uBAAqDC,KAAAA;AAEzD,KAAI/B,OAAOgC,UACTF,wBAAuB9B,OAAOgC,UAAUC,qBAAqB;CAG/D,MAAMC,aAAa,CACjB,GAAGR,SAAS,CAACA,SACb,GAAGtB,cAAc,CAClB;AAED,KAAI0B,qBACFI,YAAWC,QAAQL,qBAAqB;AAG1C,SAAA,GAAA,aAAA,YAEKI,WAAWxB,KAAKY,OAAOe,OAAAA,GAAAA,aAAAA,iBACrB1C,cAAAA,OAAU2B,MACZ,CAAC,CAAA"}