@tanstack/solid-router 1.108.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +29 -0
- package/dist/cjs/Asset.cjs +59 -0
- package/dist/cjs/Asset.cjs.map +1 -0
- package/dist/cjs/Asset.d.cts +2 -0
- package/dist/cjs/CatchBoundary.cjs +92 -0
- package/dist/cjs/CatchBoundary.cjs.map +1 -0
- package/dist/cjs/CatchBoundary.d.cts +11 -0
- package/dist/cjs/HeadContent.cjs +129 -0
- package/dist/cjs/HeadContent.cjs.map +1 -0
- package/dist/cjs/HeadContent.d.cts +8 -0
- package/dist/cjs/Match.cjs +340 -0
- package/dist/cjs/Match.cjs.map +1 -0
- package/dist/cjs/Match.d.cts +8 -0
- package/dist/cjs/Matches.cjs +151 -0
- package/dist/cjs/Matches.cjs.map +1 -0
- package/dist/cjs/Matches.d.cts +69 -0
- package/dist/cjs/RouterProvider.cjs +45 -0
- package/dist/cjs/RouterProvider.cjs.map +1 -0
- package/dist/cjs/RouterProvider.d.cts +35 -0
- package/dist/cjs/SafeFragment.cjs +8 -0
- package/dist/cjs/SafeFragment.cjs.map +1 -0
- package/dist/cjs/SafeFragment.d.cts +1 -0
- package/dist/cjs/ScriptOnce.cjs +23 -0
- package/dist/cjs/ScriptOnce.cjs.map +1 -0
- package/dist/cjs/ScriptOnce.d.cts +5 -0
- package/dist/cjs/Scripts.cjs +48 -0
- package/dist/cjs/Scripts.cjs.map +1 -0
- package/dist/cjs/Scripts.d.cts +1 -0
- package/dist/cjs/ScrollRestoration.cjs +37 -0
- package/dist/cjs/ScrollRestoration.cjs.map +1 -0
- package/dist/cjs/ScrollRestoration.d.cts +15 -0
- package/dist/cjs/Transitioner.cjs +132 -0
- package/dist/cjs/Transitioner.cjs.map +1 -0
- package/dist/cjs/Transitioner.d.cts +1 -0
- package/dist/cjs/awaited.cjs +53 -0
- package/dist/cjs/awaited.cjs.map +1 -0
- package/dist/cjs/awaited.d.cts +11 -0
- package/dist/cjs/fileRoute.cjs +90 -0
- package/dist/cjs/fileRoute.cjs.map +1 -0
- package/dist/cjs/fileRoute.d.cts +58 -0
- package/dist/cjs/history.d.cts +8 -0
- package/dist/cjs/index.cjs +260 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +53 -0
- package/dist/cjs/lazyRouteComponent.cjs +74 -0
- package/dist/cjs/lazyRouteComponent.cjs.map +1 -0
- package/dist/cjs/lazyRouteComponent.d.cts +7 -0
- package/dist/cjs/link.cjs +279 -0
- package/dist/cjs/link.cjs.map +1 -0
- package/dist/cjs/link.d.cts +113 -0
- package/dist/cjs/matchContext.cjs +25 -0
- package/dist/cjs/matchContext.cjs.map +1 -0
- package/dist/cjs/matchContext.d.cts +3 -0
- package/dist/cjs/not-found.cjs +51 -0
- package/dist/cjs/not-found.cjs.map +1 -0
- package/dist/cjs/not-found.d.cts +27 -0
- package/dist/cjs/redirects.cjs +29 -0
- package/dist/cjs/redirects.cjs.map +1 -0
- package/dist/cjs/redirects.d.cts +21 -0
- package/dist/cjs/renderRouteNotFound.cjs +23 -0
- package/dist/cjs/renderRouteNotFound.cjs.map +1 -0
- package/dist/cjs/renderRouteNotFound.d.cts +3 -0
- package/dist/cjs/route.cjs +233 -0
- package/dist/cjs/route.cjs.map +1 -0
- package/dist/cjs/route.d.cts +297 -0
- package/dist/cjs/routeInfo.d.cts +53 -0
- package/dist/cjs/router.cjs +1687 -0
- package/dist/cjs/router.cjs.map +1 -0
- package/dist/cjs/router.d.cts +555 -0
- package/dist/cjs/routerContext.cjs +33 -0
- package/dist/cjs/routerContext.cjs.map +1 -0
- package/dist/cjs/routerContext.d.cts +8 -0
- package/dist/cjs/scroll-restoration.cjs +183 -0
- package/dist/cjs/scroll-restoration.cjs.map +1 -0
- package/dist/cjs/scroll-restoration.d.cts +29 -0
- package/dist/cjs/typePrimitives.d.cts +66 -0
- package/dist/cjs/useBlocker.cjs +165 -0
- package/dist/cjs/useBlocker.cjs.map +1 -0
- package/dist/cjs/useBlocker.d.cts +68 -0
- package/dist/cjs/useCanGoBack.cjs +8 -0
- package/dist/cjs/useCanGoBack.cjs.map +1 -0
- package/dist/cjs/useCanGoBack.d.cts +1 -0
- package/dist/cjs/useLoaderData.cjs +14 -0
- package/dist/cjs/useLoaderData.cjs.map +1 -0
- package/dist/cjs/useLoaderData.d.cts +13 -0
- package/dist/cjs/useLoaderDeps.cjs +17 -0
- package/dist/cjs/useLoaderDeps.cjs.map +1 -0
- package/dist/cjs/useLoaderDeps.d.cts +12 -0
- package/dist/cjs/useLocation.cjs +10 -0
- package/dist/cjs/useLocation.cjs.map +1 -0
- package/dist/cjs/useLocation.d.cts +7 -0
- package/dist/cjs/useMatch.cjs +39 -0
- package/dist/cjs/useMatch.cjs.map +1 -0
- package/dist/cjs/useMatch.d.cts +14 -0
- package/dist/cjs/useNavigate.cjs +45 -0
- package/dist/cjs/useNavigate.cjs.map +1 -0
- package/dist/cjs/useNavigate.d.cts +7 -0
- package/dist/cjs/useParams.cjs +15 -0
- package/dist/cjs/useParams.cjs.map +1 -0
- package/dist/cjs/useParams.d.cts +15 -0
- package/dist/cjs/useRouteContext.cjs +11 -0
- package/dist/cjs/useRouteContext.cjs.map +1 -0
- package/dist/cjs/useRouteContext.d.cts +13 -0
- package/dist/cjs/useRouter.cjs +29 -0
- package/dist/cjs/useRouter.cjs.map +1 -0
- package/dist/cjs/useRouter.d.cts +4 -0
- package/dist/cjs/useRouterState.cjs +16 -0
- package/dist/cjs/useRouterState.cjs.map +1 -0
- package/dist/cjs/useRouterState.d.cts +8 -0
- package/dist/cjs/useSearch.cjs +15 -0
- package/dist/cjs/useSearch.cjs.map +1 -0
- package/dist/cjs/useSearch.d.cts +15 -0
- package/dist/cjs/utils.cjs +58 -0
- package/dist/cjs/utils.cjs.map +1 -0
- package/dist/cjs/utils.d.cts +44 -0
- package/dist/esm/Asset.d.ts +2 -0
- package/dist/esm/Asset.js +59 -0
- package/dist/esm/Asset.js.map +1 -0
- package/dist/esm/CatchBoundary.d.ts +11 -0
- package/dist/esm/CatchBoundary.js +75 -0
- package/dist/esm/CatchBoundary.js.map +1 -0
- package/dist/esm/HeadContent.d.ts +8 -0
- package/dist/esm/HeadContent.js +112 -0
- package/dist/esm/HeadContent.js.map +1 -0
- package/dist/esm/Match.d.ts +8 -0
- package/dist/esm/Match.js +323 -0
- package/dist/esm/Match.js.map +1 -0
- package/dist/esm/Matches.d.ts +69 -0
- package/dist/esm/Matches.js +134 -0
- package/dist/esm/Matches.js.map +1 -0
- package/dist/esm/RouterProvider.d.ts +35 -0
- package/dist/esm/RouterProvider.js +45 -0
- package/dist/esm/RouterProvider.js.map +1 -0
- package/dist/esm/SafeFragment.d.ts +1 -0
- package/dist/esm/SafeFragment.js +8 -0
- package/dist/esm/SafeFragment.js.map +1 -0
- package/dist/esm/ScriptOnce.d.ts +5 -0
- package/dist/esm/ScriptOnce.js +23 -0
- package/dist/esm/ScriptOnce.js.map +1 -0
- package/dist/esm/Scripts.d.ts +1 -0
- package/dist/esm/Scripts.js +48 -0
- package/dist/esm/Scripts.js.map +1 -0
- package/dist/esm/ScrollRestoration.d.ts +15 -0
- package/dist/esm/ScrollRestoration.js +37 -0
- package/dist/esm/ScrollRestoration.js.map +1 -0
- package/dist/esm/Transitioner.d.ts +1 -0
- package/dist/esm/Transitioner.js +115 -0
- package/dist/esm/Transitioner.js.map +1 -0
- package/dist/esm/awaited.d.ts +11 -0
- package/dist/esm/awaited.js +36 -0
- package/dist/esm/awaited.js.map +1 -0
- package/dist/esm/fileRoute.d.ts +58 -0
- package/dist/esm/fileRoute.js +90 -0
- package/dist/esm/fileRoute.js.map +1 -0
- package/dist/esm/history.d.ts +8 -0
- package/dist/esm/index.d.ts +53 -0
- package/dist/esm/index.js +149 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lazyRouteComponent.d.ts +7 -0
- package/dist/esm/lazyRouteComponent.js +74 -0
- package/dist/esm/lazyRouteComponent.js.map +1 -0
- package/dist/esm/link.d.ts +113 -0
- package/dist/esm/link.js +262 -0
- package/dist/esm/link.js.map +1 -0
- package/dist/esm/matchContext.d.ts +3 -0
- package/dist/esm/matchContext.js +8 -0
- package/dist/esm/matchContext.js.map +1 -0
- package/dist/esm/not-found.d.ts +27 -0
- package/dist/esm/not-found.js +51 -0
- package/dist/esm/not-found.js.map +1 -0
- package/dist/esm/redirects.d.ts +21 -0
- package/dist/esm/redirects.js +29 -0
- package/dist/esm/redirects.js.map +1 -0
- package/dist/esm/renderRouteNotFound.d.ts +3 -0
- package/dist/esm/renderRouteNotFound.js +23 -0
- package/dist/esm/renderRouteNotFound.js.map +1 -0
- package/dist/esm/route.d.ts +297 -0
- package/dist/esm/route.js +233 -0
- package/dist/esm/route.js.map +1 -0
- package/dist/esm/routeInfo.d.ts +53 -0
- package/dist/esm/router.d.ts +555 -0
- package/dist/esm/router.js +1687 -0
- package/dist/esm/router.js.map +1 -0
- package/dist/esm/routerContext.d.ts +8 -0
- package/dist/esm/routerContext.js +16 -0
- package/dist/esm/routerContext.js.map +1 -0
- package/dist/esm/scroll-restoration.d.ts +29 -0
- package/dist/esm/scroll-restoration.js +183 -0
- package/dist/esm/scroll-restoration.js.map +1 -0
- package/dist/esm/typePrimitives.d.ts +66 -0
- package/dist/esm/useBlocker.d.ts +68 -0
- package/dist/esm/useBlocker.js +148 -0
- package/dist/esm/useBlocker.js.map +1 -0
- package/dist/esm/useCanGoBack.d.ts +1 -0
- package/dist/esm/useCanGoBack.js +8 -0
- package/dist/esm/useCanGoBack.js.map +1 -0
- package/dist/esm/useLoaderData.d.ts +13 -0
- package/dist/esm/useLoaderData.js +14 -0
- package/dist/esm/useLoaderData.js.map +1 -0
- package/dist/esm/useLoaderDeps.d.ts +12 -0
- package/dist/esm/useLoaderDeps.js +17 -0
- package/dist/esm/useLoaderDeps.js.map +1 -0
- package/dist/esm/useLocation.d.ts +7 -0
- package/dist/esm/useLocation.js +10 -0
- package/dist/esm/useLocation.js.map +1 -0
- package/dist/esm/useMatch.d.ts +14 -0
- package/dist/esm/useMatch.js +22 -0
- package/dist/esm/useMatch.js.map +1 -0
- package/dist/esm/useNavigate.d.ts +7 -0
- package/dist/esm/useNavigate.js +28 -0
- package/dist/esm/useNavigate.js.map +1 -0
- package/dist/esm/useParams.d.ts +15 -0
- package/dist/esm/useParams.js +15 -0
- package/dist/esm/useParams.js.map +1 -0
- package/dist/esm/useRouteContext.d.ts +13 -0
- package/dist/esm/useRouteContext.js +11 -0
- package/dist/esm/useRouteContext.js.map +1 -0
- package/dist/esm/useRouter.d.ts +4 -0
- package/dist/esm/useRouter.js +12 -0
- package/dist/esm/useRouter.js.map +1 -0
- package/dist/esm/useRouterState.d.ts +8 -0
- package/dist/esm/useRouterState.js +16 -0
- package/dist/esm/useRouterState.js.map +1 -0
- package/dist/esm/useSearch.d.ts +15 -0
- package/dist/esm/useSearch.js +15 -0
- package/dist/esm/useSearch.js.map +1 -0
- package/dist/esm/utils.d.ts +44 -0
- package/dist/esm/utils.js +41 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +75 -0
- package/src/Asset.tsx +23 -0
- package/src/CatchBoundary.tsx +78 -0
- package/src/HeadContent.tsx +146 -0
- package/src/Match.tsx +356 -0
- package/src/Matches.tsx +348 -0
- package/src/RouterProvider.tsx +130 -0
- package/src/SafeFragment.tsx +3 -0
- package/src/ScriptOnce.tsx +30 -0
- package/src/Scripts.tsx +65 -0
- package/src/ScrollRestoration.tsx +65 -0
- package/src/Transitioner.tsx +152 -0
- package/src/awaited.tsx +49 -0
- package/src/fileRoute.ts +274 -0
- package/src/history.ts +9 -0
- package/src/index.tsx +359 -0
- package/src/lazyRouteComponent.tsx +114 -0
- package/src/link.tsx +1002 -0
- package/src/matchContext.tsx +10 -0
- package/src/not-found.tsx +69 -0
- package/src/redirects.ts +71 -0
- package/src/renderRouteNotFound.tsx +27 -0
- package/src/route.ts +1477 -0
- package/src/routeInfo.ts +239 -0
- package/src/router.ts +3066 -0
- package/src/routerContext.tsx +26 -0
- package/src/scroll-restoration.tsx +337 -0
- package/src/typePrimitives.ts +195 -0
- package/src/useBlocker.tsx +298 -0
- package/src/useCanGoBack.ts +5 -0
- package/src/useLoaderData.tsx +64 -0
- package/src/useLoaderDeps.tsx +52 -0
- package/src/useLocation.tsx +26 -0
- package/src/useMatch.tsx +96 -0
- package/src/useNavigate.tsx +61 -0
- package/src/useParams.tsx +83 -0
- package/src/useRouteContext.ts +62 -0
- package/src/useRouter.tsx +15 -0
- package/src/useRouterState.tsx +32 -0
- package/src/useSearch.tsx +84 -0
- package/src/utils.ts +96 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021-present Tanner Linsley
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<img src="https://static.scarf.sh/a.png?x-pxid=d988eb79-b0fc-4a2b-8514-6a1ab932d188" />
|
|
2
|
+
|
|
3
|
+
# TanStack Solid Router
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
🤖 Type-safe router w/ built-in caching & URL state management for Solid!
|
|
8
|
+
|
|
9
|
+
<a href="https://twitter.com/intent/tweet?button_hashtag=TanStack" target="\_parent">
|
|
10
|
+
<img alt="#TanStack" src="https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack">
|
|
11
|
+
</a><a href="https://discord.com/invite/WrRKjPJ" target="\_parent">
|
|
12
|
+
<img alt="" src="https://img.shields.io/badge/Discord-TanStack-%235865F2" />
|
|
13
|
+
</a><a href="https://npmjs.com/package/@tanstack/solid-router" target="\_parent">
|
|
14
|
+
<img alt="" src="https://img.shields.io/npm/dm/@tanstack/router.svg" />
|
|
15
|
+
</a><a href="https://bundlephobia.com/result?p=@tanstack/solid-router" target="\_parent">
|
|
16
|
+
<img alt="" src="https://badgen.net/bundlephobia/minzip/@tanstack/solid-router" />
|
|
17
|
+
</a><a href="#badge">
|
|
18
|
+
<img alt="semantic-release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg">
|
|
19
|
+
</a><a href="https://github.com/tanstack/router/discussions">
|
|
20
|
+
<img alt="Join the discussion on Github" src="https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue" />
|
|
21
|
+
</a><a href="https://bestofjs.org/projects/router"><img alt="Best of JS" src="https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tanstack%2Frouter%26since=daily" /></a><a href="https://github.com/tanstack/router" target="\_parent">
|
|
22
|
+
<img alt="" src="https://img.shields.io/github/stars/tanstack/router.svg?style=social&label=Star" />
|
|
23
|
+
</a><a href="https://twitter.com/tan_stack" target="\_parent">
|
|
24
|
+
<img alt="" src="https://img.shields.io/twitter/follow/tan_stack.svg?style=social&label=Follow @TanStack" />
|
|
25
|
+
</a><a href="https://twitter.com/tannerlinsley" target="\_parent">
|
|
26
|
+
<img alt="" src="https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow @TannerLinsley" />
|
|
27
|
+
</a>
|
|
28
|
+
|
|
29
|
+
## Visit [tanstack.com/router](https://tanstack.com/router) for docs, guides, API and more!
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const web = require("solid-js/web");
|
|
4
|
+
var _tmpl$ = /* @__PURE__ */ web.template(`<title>`), _tmpl$2 = /* @__PURE__ */ web.template(`<meta>`), _tmpl$3 = /* @__PURE__ */ web.template(`<link>`), _tmpl$4 = /* @__PURE__ */ web.template(`<style>`), _tmpl$5 = /* @__PURE__ */ web.template(`<script>`);
|
|
5
|
+
function Asset({
|
|
6
|
+
tag,
|
|
7
|
+
attrs,
|
|
8
|
+
children
|
|
9
|
+
}) {
|
|
10
|
+
switch (tag) {
|
|
11
|
+
case "title":
|
|
12
|
+
return (() => {
|
|
13
|
+
var _el$ = _tmpl$();
|
|
14
|
+
web.spread(_el$, attrs, false, true);
|
|
15
|
+
web.insert(_el$, children);
|
|
16
|
+
return _el$;
|
|
17
|
+
})();
|
|
18
|
+
case "meta":
|
|
19
|
+
return (() => {
|
|
20
|
+
var _el$2 = _tmpl$2();
|
|
21
|
+
web.spread(_el$2, attrs, false, false);
|
|
22
|
+
return _el$2;
|
|
23
|
+
})();
|
|
24
|
+
case "link":
|
|
25
|
+
return (() => {
|
|
26
|
+
var _el$3 = _tmpl$3();
|
|
27
|
+
web.spread(_el$3, attrs, false, false);
|
|
28
|
+
return _el$3;
|
|
29
|
+
})();
|
|
30
|
+
case "style":
|
|
31
|
+
return (() => {
|
|
32
|
+
var _el$4 = _tmpl$4();
|
|
33
|
+
web.spread(_el$4, web.mergeProps(attrs, {
|
|
34
|
+
"innerHTML": children
|
|
35
|
+
}), false, false);
|
|
36
|
+
return _el$4;
|
|
37
|
+
})();
|
|
38
|
+
case "script":
|
|
39
|
+
if (attrs && attrs.src) {
|
|
40
|
+
return (() => {
|
|
41
|
+
var _el$5 = _tmpl$5();
|
|
42
|
+
web.spread(_el$5, attrs, false, false);
|
|
43
|
+
return _el$5;
|
|
44
|
+
})();
|
|
45
|
+
}
|
|
46
|
+
if (typeof children === "string") return (() => {
|
|
47
|
+
var _el$6 = _tmpl$5();
|
|
48
|
+
web.spread(_el$6, web.mergeProps(attrs, {
|
|
49
|
+
"innerHTML": children
|
|
50
|
+
}), false, false);
|
|
51
|
+
return _el$6;
|
|
52
|
+
})();
|
|
53
|
+
return null;
|
|
54
|
+
default:
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.Asset = Asset;
|
|
59
|
+
//# sourceMappingURL=Asset.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Asset.cjs","sources":["../../src/Asset.tsx"],"sourcesContent":["import type { RouterManagedTag } from '@tanstack/router-core'\n\nexport function Asset({ tag, attrs, children }: RouterManagedTag): any {\n switch (tag) {\n case 'title':\n return <title {...attrs}>{children}</title>\n case 'meta':\n return <meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <style {...attrs} innerHTML={children} />\n case 'script':\n if ((attrs as any) && (attrs as any).src) {\n return <script {...attrs} />\n }\n if (typeof children === 'string')\n return <script {...attrs} innerHTML={children} />\n return null\n default:\n return null\n }\n}\n"],"names":["Asset","tag","attrs","children","_el$","_tmpl$","_$insert","_el$2","_tmpl$2","_el$3","_tmpl$3","_el$4","_tmpl$4","_$mergeProps","src","_el$5","_tmpl$5","_el$6"],"mappings":";;;;AAEO,SAASA,MAAM;AAAA,EAAEC;AAAAA,EAAKC;AAAAA,EAAOC;AAA2B,GAAQ;AACrE,UAAQF,KAAG;AAAA,IACT,KAAK;AACH,cAAA,MAAA;AAAA,YAAAG,OAAAC,OAAA;AAAAD,YAAAA,OAAAA,MAAkBF,OAAK,OAAA,IAAA;AAAAI,YAAAA,OAAAF,MAAGD,QAAQ;AAAAC,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACpC,KAAK;AACH,cAAA,MAAA;AAAA,YAAAG,QAAAC,QAAA;AAAAD,YAAAA,OAAAA,OAAiBL,OAAK,OAAA,KAAA;AAAAK,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAE,QAAAC,QAAA;AAAAD,YAAAA,OAAAA,OAAiBP,OAAK,OAAA,KAAA;AAAAO,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAE,QAAAC,QAAA;AAAAD,mBAAAA,OAAAE,eAAkBX,OAAK;AAAA,UAAA,aAAaC;AAAAA,QAAAA,CAAQ,GAAA,OAAA,KAAA;AAAAQ,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IAC9C,KAAK;AACET,UAAAA,SAAkBA,MAAcY,KAAK;AACxC,gBAAA,MAAA;AAAA,cAAAC,QAAAC,QAAA;AAAAD,cAAAA,OAAAA,OAAmBb,OAAK,OAAA,KAAA;AAAAa,iBAAAA;AAAAA,QAAAA,GAAA;AAAA,MAAA;AAE1B,UAAI,OAAOZ,aAAa,SACtB,SAAA,MAAA;AAAA,YAAAc,QAAAD,QAAA;AAAAC,mBAAAA,OAAAJ,eAAmBX,OAAK;AAAA,UAAA,aAAaC;AAAAA,QAAAA,CAAQ,GAAA,OAAA,KAAA;AAAAc,eAAAA;AAAAA,MAAAA,GAAA;AACxC,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EAAA;AAEb;;"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const web = require("solid-js/web");
|
|
4
|
+
const Solid = require("solid-js");
|
|
5
|
+
function _interopNamespaceDefault(e) {
|
|
6
|
+
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
7
|
+
if (e) {
|
|
8
|
+
for (const k in e) {
|
|
9
|
+
if (k !== "default") {
|
|
10
|
+
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
11
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: () => e[k]
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
n.default = e;
|
|
19
|
+
return Object.freeze(n);
|
|
20
|
+
}
|
|
21
|
+
const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid);
|
|
22
|
+
var _tmpl$ = /* @__PURE__ */ web.template(`<div><div><strong>Something went wrong!</strong><button></button></div><div>`), _tmpl$2 = /* @__PURE__ */ web.template(`<div><pre>`), _tmpl$3 = /* @__PURE__ */ web.template(`<code>`);
|
|
23
|
+
function CatchBoundary(props) {
|
|
24
|
+
return web.createComponent(Solid__namespace.ErrorBoundary, {
|
|
25
|
+
fallback: (error, reset) => {
|
|
26
|
+
var _a;
|
|
27
|
+
(_a = props.onCatch) == null ? void 0 : _a.call(props, error);
|
|
28
|
+
Solid__namespace.createEffect(Solid__namespace.on([props.getResetKey], () => reset(), {
|
|
29
|
+
defer: true
|
|
30
|
+
}));
|
|
31
|
+
return web.createComponent(web.Dynamic, {
|
|
32
|
+
get component() {
|
|
33
|
+
return props.errorComponent ?? ErrorComponent;
|
|
34
|
+
},
|
|
35
|
+
error,
|
|
36
|
+
reset
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
get children() {
|
|
40
|
+
return props.children;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function ErrorComponent({
|
|
45
|
+
error
|
|
46
|
+
}) {
|
|
47
|
+
const [show, setShow] = Solid__namespace.createSignal(process.env.NODE_ENV !== "production");
|
|
48
|
+
return (() => {
|
|
49
|
+
var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling;
|
|
50
|
+
_el$.style.setProperty("padding", ".5rem");
|
|
51
|
+
_el$.style.setProperty("max-width", "100%");
|
|
52
|
+
_el$2.style.setProperty("display", "flex");
|
|
53
|
+
_el$2.style.setProperty("align-items", "center");
|
|
54
|
+
_el$2.style.setProperty("gap", ".5rem");
|
|
55
|
+
_el$3.style.setProperty("font-size", "1rem");
|
|
56
|
+
_el$4.$$click = () => setShow((d) => !d);
|
|
57
|
+
_el$4.style.setProperty("appearance", "none");
|
|
58
|
+
_el$4.style.setProperty("font-size", ".6em");
|
|
59
|
+
_el$4.style.setProperty("border", "1px solid currentColor");
|
|
60
|
+
_el$4.style.setProperty("padding", ".1rem .2rem");
|
|
61
|
+
_el$4.style.setProperty("font-weight", "bold");
|
|
62
|
+
_el$4.style.setProperty("border-radius", ".25rem");
|
|
63
|
+
web.insert(_el$4, () => show() ? "Hide Error" : "Show Error");
|
|
64
|
+
_el$5.style.setProperty("height", ".25rem");
|
|
65
|
+
web.insert(_el$, (() => {
|
|
66
|
+
var _c$ = web.memo(() => !!show());
|
|
67
|
+
return () => _c$() ? (() => {
|
|
68
|
+
var _el$6 = _tmpl$2(), _el$7 = _el$6.firstChild;
|
|
69
|
+
_el$7.style.setProperty("font-size", ".7em");
|
|
70
|
+
_el$7.style.setProperty("border", "1px solid red");
|
|
71
|
+
_el$7.style.setProperty("border-radius", ".25rem");
|
|
72
|
+
_el$7.style.setProperty("padding", ".3rem");
|
|
73
|
+
_el$7.style.setProperty("color", "red");
|
|
74
|
+
_el$7.style.setProperty("overflow", "auto");
|
|
75
|
+
web.insert(_el$7, (() => {
|
|
76
|
+
var _c$2 = web.memo(() => !!error.message);
|
|
77
|
+
return () => _c$2() ? (() => {
|
|
78
|
+
var _el$8 = _tmpl$3();
|
|
79
|
+
web.insert(_el$8, () => error.message);
|
|
80
|
+
return _el$8;
|
|
81
|
+
})() : null;
|
|
82
|
+
})());
|
|
83
|
+
return _el$6;
|
|
84
|
+
})() : null;
|
|
85
|
+
})(), null);
|
|
86
|
+
return _el$;
|
|
87
|
+
})();
|
|
88
|
+
}
|
|
89
|
+
web.delegateEvents(["click"]);
|
|
90
|
+
exports.CatchBoundary = CatchBoundary;
|
|
91
|
+
exports.ErrorComponent = ErrorComponent;
|
|
92
|
+
//# sourceMappingURL=CatchBoundary.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CatchBoundary.cjs","sources":["../../src/CatchBoundary.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { Dynamic } from 'solid-js/web'\nimport type { ErrorRouteComponent } from './route'\n\nexport function CatchBoundary(\n props: {\n getResetKey: () => number | string\n children: Solid.JSX.Element\n errorComponent?: ErrorRouteComponent\n onCatch?: (error: Error) => void\n } & Solid.ParentProps,\n) {\n return (\n <Solid.ErrorBoundary\n fallback={(error, reset) => {\n props.onCatch?.(error)\n\n Solid.createEffect(\n Solid.on([props.getResetKey], () => reset(), { defer: true }),\n )\n\n return (\n <Dynamic\n component={props.errorComponent ?? ErrorComponent}\n error={error}\n reset={reset}\n />\n )\n }}\n >\n {props.children}\n </Solid.ErrorBoundary>\n )\n}\n\nexport function ErrorComponent({ error }: { error: any }) {\n const [show, setShow] = Solid.createSignal(\n process.env.NODE_ENV !== 'production',\n )\n\n return (\n <div style={{ padding: '.5rem', 'max-width': '100%' }}>\n <div style={{ display: 'flex', 'align-items': 'center', gap: '.5rem' }}>\n <strong style={{ 'font-size': '1rem' }}>Something went wrong!</strong>\n <button\n style={{\n appearance: 'none',\n 'font-size': '.6em',\n border: '1px solid currentColor',\n padding: '.1rem .2rem',\n 'font-weight': 'bold',\n 'border-radius': '.25rem',\n }}\n onClick={() => setShow((d) => !d)}\n >\n {show() ? 'Hide Error' : 'Show Error'}\n </button>\n </div>\n <div style={{ height: '.25rem' }} />\n {show() ? (\n <div>\n <pre\n style={{\n 'font-size': '.7em',\n border: '1px solid red',\n 'border-radius': '.25rem',\n padding: '.3rem',\n color: 'red',\n overflow: 'auto',\n }}\n >\n {error.message ? <code>{error.message}</code> : null}\n </pre>\n </div>\n ) : null}\n </div>\n )\n}\n"],"names":["CatchBoundary","props","_$createComponent","Solid","ErrorBoundary","fallback","error","reset","onCatch","createEffect","on","getResetKey","defer","Dynamic","component","errorComponent","ErrorComponent","children","show","setShow","createSignal","process","env","NODE_ENV","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","style","setProperty","$$click","d","_$insert","_c$","_$memo","_el$6","_tmpl$2","_el$7","_c$2","message","_el$8","_tmpl$3","_$delegateEvents"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIO,SAASA,cACdC,OAMA;AACAC,SAAAA,IAAAA,gBACGC,iBAAMC,eAAa;AAAA,IAClBC,UAAUA,CAACC,OAAOC,UAAU;;AAC1BN,kBAAMO,YAANP,+BAAgBK;AAEVG,uBAAAA,aACJN,iBAAMO,GAAG,CAACT,MAAMU,WAAW,GAAG,MAAMJ,SAAS;AAAA,QAAEK,OAAO;AAAA,MAAA,CAAM,CAC9D;AAEA,aAAAV,IAAAA,gBACGW,IAAAA,SAAO;AAAA,QAAA,IACNC,YAAS;AAAA,iBAAEb,MAAMc,kBAAkBC;AAAAA,QAAc;AAAA,QACjDV;AAAAA,QACAC;AAAAA,MAAAA,CAAY;AAAA,IAGlB;AAAA,IAAC,IAAAU,WAAA;AAAA,aAEAhB,MAAMgB;AAAAA,IAAAA;AAAAA,EAAQ,CAAA;AAGrB;AAEO,SAASD,eAAe;AAAA,EAAEV;AAAsB,GAAG;AAClD,QAAA,CAACY,MAAMC,OAAO,IAAIhB,iBAAMiB,aAC5BC,QAAQC,IAAIC,aAAa,YAC3B;AAEA,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAC,GAAAA,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC,YAAAE,QAAAD,MAAAE,aAAAC,QAAAL,MAAAI;AAAAE,SAAAA,MAAAC,YAAA,WAAA,OAAA;AAAAD,SAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,WAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,eAAA,QAAA;AAAAD,UAAAA,MAAAC,YAAA,OAAA,OAAA;AAAAD,UAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAJ,UAAAK,UAaiB,MAAMf,QAASgB,CAAAA,MAAM,CAACA,CAAC;AAACH,UAAAA,MAAAC,YAAA,cAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,UAAA,wBAAA;AAAAD,UAAAA,MAAAC,YAAA,WAAA,aAAA;AAAAD,UAAAA,MAAAC,YAAA,eAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,iBAAA,QAAA;AAAAG,QAAAA,OAAAP,OAEhCX,MAAAA,KAAK,IAAI,eAAe,YAAY;AAAAc,UAAAA,MAAAC,YAAA,UAAA,QAAA;AAAAG,QAAAA,OAAAZ,OAAA,MAAA;AAAA,UAAAa,MAAAC,IAIxCpB,KAAAA,MAAAA,CAAAA,CAAAA,MAAM;AAAA,aAAA,MAANmB,IAAA,KAAA,MAAA;AAAA,YAAAE,QAAAC,QAAAA,GAAAC,QAAAF,MAAAZ;AAAAK,cAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAD,cAAAA,MAAAC,YAAA,UAAA,eAAA;AAAAD,cAAAA,MAAAC,YAAA,iBAAA,QAAA;AAAAD,cAAAA,MAAAC,YAAA,WAAA,OAAA;AAAAD,cAAAA,MAAAC,YAAA,SAAA,KAAA;AAAAD,cAAAA,MAAAC,YAAA,YAAA,MAAA;AAAAG,YAAAA,OAAAK,QAAA,MAAA;AAAA,cAAAC,OAAAJ,IAYMhC,KAAAA,MAAAA,CAAAA,CAAAA,MAAMqC,OAAO;AAAA,iBAAA,MAAbD,KAAA,KAAA,MAAA;AAAA,gBAAAE,QAAAC,QAAA;AAAAD,gBAAAA,OAAAA,OAAuBtC,MAAAA,MAAMqC,OAAO;AAAAC,mBAAAA;AAAAA,iBAAW;AAAA,QAAA,IAAI;AAAAL,eAAAA;AAAAA,aAGtD;AAAA,IAAI,GAAA,GAAA,IAAA;AAAAf,WAAAA;AAAAA,EAAAA,GAAA;AAGd;AAACsB,IAAAA,eAAA,CAAA,OAAA,CAAA;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ErrorRouteComponent } from './route.cjs';
|
|
2
|
+
import * as Solid from 'solid-js';
|
|
3
|
+
export declare function CatchBoundary(props: {
|
|
4
|
+
getResetKey: () => number | string;
|
|
5
|
+
children: Solid.JSX.Element;
|
|
6
|
+
errorComponent?: ErrorRouteComponent;
|
|
7
|
+
onCatch?: (error: Error) => void;
|
|
8
|
+
} & Solid.ParentProps): Solid.JSX.Element;
|
|
9
|
+
export declare function ErrorComponent({ error }: {
|
|
10
|
+
error: any;
|
|
11
|
+
}): Solid.JSX.Element;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const web = require("solid-js/web");
|
|
4
|
+
const Solid = require("solid-js");
|
|
5
|
+
const Asset = require("./Asset.cjs");
|
|
6
|
+
const useRouter = require("./useRouter.cjs");
|
|
7
|
+
const useRouterState = require("./useRouterState.cjs");
|
|
8
|
+
function _interopNamespaceDefault(e) {
|
|
9
|
+
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
10
|
+
if (e) {
|
|
11
|
+
for (const k in e) {
|
|
12
|
+
if (k !== "default") {
|
|
13
|
+
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: () => e[k]
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid);
|
|
25
|
+
const useTags = () => {
|
|
26
|
+
const router = useRouter.useRouter();
|
|
27
|
+
const routeMeta = useRouterState.useRouterState({
|
|
28
|
+
select: (state) => {
|
|
29
|
+
return state.matches.map((match) => match.meta).filter(Boolean);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
const meta = Solid__namespace.createMemo(() => {
|
|
33
|
+
const resultMeta = [];
|
|
34
|
+
const metaByAttribute = {};
|
|
35
|
+
let title;
|
|
36
|
+
[...routeMeta()].reverse().forEach((metas) => {
|
|
37
|
+
[...metas].reverse().forEach((m) => {
|
|
38
|
+
if (!m) return;
|
|
39
|
+
if (m.title) {
|
|
40
|
+
if (!title) {
|
|
41
|
+
title = {
|
|
42
|
+
tag: "title",
|
|
43
|
+
children: m.title
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
} else {
|
|
47
|
+
const attribute = m.name ?? m.property;
|
|
48
|
+
if (attribute) {
|
|
49
|
+
if (metaByAttribute[attribute]) {
|
|
50
|
+
return;
|
|
51
|
+
} else {
|
|
52
|
+
metaByAttribute[attribute] = true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
resultMeta.push({
|
|
56
|
+
tag: "meta",
|
|
57
|
+
attrs: {
|
|
58
|
+
...m
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
if (title) {
|
|
65
|
+
resultMeta.push(title);
|
|
66
|
+
}
|
|
67
|
+
resultMeta.reverse();
|
|
68
|
+
return resultMeta;
|
|
69
|
+
}, [routeMeta]);
|
|
70
|
+
const links = useRouterState.useRouterState({
|
|
71
|
+
select: (state) => state.matches.map((match) => match.links).filter(Boolean).flat(1).map((link) => ({
|
|
72
|
+
tag: "link",
|
|
73
|
+
attrs: {
|
|
74
|
+
...link
|
|
75
|
+
}
|
|
76
|
+
}))
|
|
77
|
+
});
|
|
78
|
+
const preloadMeta = useRouterState.useRouterState({
|
|
79
|
+
select: (state) => {
|
|
80
|
+
const preloadMeta2 = [];
|
|
81
|
+
state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach((route) => {
|
|
82
|
+
var _a, _b, _c, _d;
|
|
83
|
+
return (_d = (_c = (_b = (_a = router.ssr) == null ? void 0 : _a.manifest) == null ? void 0 : _b.routes[route.id]) == null ? void 0 : _c.preloads) == null ? void 0 : _d.filter(Boolean).forEach((preload) => {
|
|
84
|
+
preloadMeta2.push({
|
|
85
|
+
tag: "link",
|
|
86
|
+
attrs: {
|
|
87
|
+
rel: "modulepreload",
|
|
88
|
+
href: preload
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
return preloadMeta2;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
const headScripts = useRouterState.useRouterState({
|
|
97
|
+
select: (state) => state.matches.map((match) => match.headScripts).flat(1).filter(Boolean).map(({
|
|
98
|
+
children,
|
|
99
|
+
...script
|
|
100
|
+
}) => ({
|
|
101
|
+
tag: "script",
|
|
102
|
+
attrs: {
|
|
103
|
+
...script
|
|
104
|
+
},
|
|
105
|
+
children
|
|
106
|
+
}))
|
|
107
|
+
});
|
|
108
|
+
return uniqBy([...meta(), ...preloadMeta(), ...links(), ...headScripts()], (d) => {
|
|
109
|
+
return JSON.stringify(d);
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
function HeadContent() {
|
|
113
|
+
const tags = useTags();
|
|
114
|
+
return tags.map((tag) => web.createComponent(Asset.Asset, tag));
|
|
115
|
+
}
|
|
116
|
+
function uniqBy(arr, fn) {
|
|
117
|
+
const seen = /* @__PURE__ */ new Set();
|
|
118
|
+
return arr.filter((item) => {
|
|
119
|
+
const key = fn(item);
|
|
120
|
+
if (seen.has(key)) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
seen.add(key);
|
|
124
|
+
return true;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
exports.HeadContent = HeadContent;
|
|
128
|
+
exports.useTags = useTags;
|
|
129
|
+
//# sourceMappingURL=HeadContent.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadContent.cjs","sources":["../../src/HeadContent.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { Asset } from './Asset'\nimport { useRouter } from './useRouter'\nimport { useRouterState } from './useRouterState'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport const useTags = () => {\n const router = useRouter()\n\n const routeMeta = useRouterState({\n select: (state) => {\n return state.matches.map((match) => match.meta!).filter(Boolean)\n },\n })\n\n const meta: Solid.Accessor<Array<RouterManagedTag>> = Solid.createMemo(() => {\n const resultMeta: Array<RouterManagedTag> = []\n const metaByAttribute: Record<string, true> = {}\n let title: RouterManagedTag | undefined\n ;[...routeMeta()].reverse().forEach((metas) => {\n ;[...metas].reverse().forEach((m) => {\n if (!m) return\n\n if (m.title) {\n if (!title) {\n title = {\n tag: 'title',\n children: m.title,\n }\n }\n } else {\n const attribute = m.name ?? m.property\n if (attribute) {\n if (metaByAttribute[attribute]) {\n return\n } else {\n metaByAttribute[attribute] = true\n }\n }\n\n resultMeta.push({\n tag: 'meta',\n attrs: {\n ...m,\n },\n })\n }\n })\n })\n\n if (title) {\n resultMeta.push(title)\n }\n\n resultMeta.reverse()\n\n return resultMeta\n }, [routeMeta])\n\n const links = useRouterState({\n select: (state) =>\n state.matches\n .map((match) => match.links!)\n .filter(Boolean)\n .flat(1)\n .map((link) => ({\n tag: 'link',\n attrs: {\n ...link,\n },\n })) as Array<RouterManagedTag>,\n })\n\n const preloadMeta = useRouterState({\n select: (state) => {\n const preloadMeta: Array<RouterManagedTag> = []\n\n state.matches\n .map((match) => router.looseRoutesById[match.routeId]!)\n .forEach((route) =>\n router.ssr?.manifest?.routes[route.id]?.preloads\n ?.filter(Boolean)\n .forEach((preload) => {\n preloadMeta.push({\n tag: 'link',\n attrs: {\n rel: 'modulepreload',\n href: preload,\n },\n })\n }),\n )\n\n return preloadMeta\n },\n })\n\n const headScripts = useRouterState({\n select: (state) =>\n (\n state.matches\n .map((match) => match.headScripts!)\n .flat(1)\n .filter(Boolean) as Array<RouterManagedTag>\n ).map(({ children, ...script }) => ({\n tag: 'script',\n attrs: {\n ...script,\n },\n children,\n })),\n })\n\n return uniqBy(\n [\n ...meta(),\n ...preloadMeta(),\n ...links(),\n ...headScripts(),\n ] as Array<RouterManagedTag>,\n (d) => {\n return JSON.stringify(d)\n },\n )\n}\n\n/**\n * @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.\n * It should be rendered in the `<head>` of your document.\n */\nexport function HeadContent() {\n const tags = useTags()\n return tags.map((tag) => <Asset {...tag} />)\n}\n\nfunction uniqBy<T>(arr: Array<T>, fn: (item: T) => string) {\n const seen = new Set<string>()\n return arr.filter((item) => {\n const key = fn(item)\n if (seen.has(key)) {\n return false\n }\n seen.add(key)\n return true\n })\n}\n"],"names":["useTags","router","useRouter","routeMeta","useRouterState","select","state","matches","map","match","meta","filter","Boolean","Solid","createMemo","resultMeta","metaByAttribute","title","reverse","forEach","metas","m","tag","children","attribute","name","property","push","attrs","links","flat","link","preloadMeta","looseRoutesById","routeId","route","ssr","manifest","routes","id","preloads","preload","rel","href","headScripts","script","uniqBy","d","JSON","stringify","HeadContent","tags","_$createComponent","Asset","arr","fn","seen","Set","item","key","has","add"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RouterManagedTag } from '@tanstack/router-core';
|
|
2
|
+
import * as Solid from 'solid-js';
|
|
3
|
+
export declare const useTags: () => RouterManagedTag[];
|
|
4
|
+
/**
|
|
5
|
+
* @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.
|
|
6
|
+
* It should be rendered in the `<head>` of your document.
|
|
7
|
+
*/
|
|
8
|
+
export declare function HeadContent(): Solid.JSX.Element[];
|