@tanstack/solid-router 1.167.1 → 1.167.3
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/dist/cjs/Asset.cjs +84 -127
- package/dist/cjs/Asset.cjs.map +1 -1
- package/dist/cjs/CatchBoundary.cjs +50 -68
- package/dist/cjs/CatchBoundary.cjs.map +1 -1
- package/dist/cjs/ClientOnly.cjs +61 -39
- package/dist/cjs/ClientOnly.cjs.map +1 -1
- package/dist/cjs/HeadContent.cjs +25 -19
- package/dist/cjs/HeadContent.cjs.map +1 -1
- package/dist/cjs/HeadContent.dev.cjs +38 -33
- package/dist/cjs/HeadContent.dev.cjs.map +1 -1
- package/dist/cjs/Match.cjs +330 -398
- package/dist/cjs/Match.cjs.map +1 -1
- package/dist/cjs/Matches.cjs +109 -151
- package/dist/cjs/Matches.cjs.map +1 -1
- package/dist/cjs/RouterProvider.cjs +28 -40
- package/dist/cjs/RouterProvider.cjs.map +1 -1
- package/dist/cjs/SafeFragment.cjs +7 -5
- package/dist/cjs/SafeFragment.cjs.map +1 -1
- package/dist/cjs/ScriptOnce.cjs +18 -20
- package/dist/cjs/ScriptOnce.cjs.map +1 -1
- package/dist/cjs/Scripts.cjs +41 -54
- package/dist/cjs/Scripts.cjs.map +1 -1
- package/dist/cjs/ScrollRestoration.cjs +26 -28
- package/dist/cjs/ScrollRestoration.cjs.map +1 -1
- package/dist/cjs/Transitioner.cjs +94 -129
- package/dist/cjs/Transitioner.cjs.map +1 -1
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/cjs/awaited.cjs +24 -51
- package/dist/cjs/awaited.cjs.map +1 -1
- package/dist/cjs/fileRoute.cjs +96 -91
- package/dist/cjs/fileRoute.cjs.map +1 -1
- package/dist/cjs/headContentUtils.cjs +132 -170
- package/dist/cjs/headContentUtils.cjs.map +1 -1
- package/dist/cjs/index.cjs +245 -176
- package/dist/cjs/index.dev.cjs +245 -176
- package/dist/cjs/lazyRouteComponent.cjs +48 -54
- package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
- package/dist/cjs/link.cjs +304 -331
- package/dist/cjs/link.cjs.map +1 -1
- package/dist/cjs/matchContext.cjs +9 -23
- package/dist/cjs/matchContext.cjs.map +1 -1
- package/dist/cjs/not-found.cjs +26 -34
- package/dist/cjs/not-found.cjs.map +1 -1
- package/dist/cjs/renderRouteNotFound.cjs +23 -16
- package/dist/cjs/renderRouteNotFound.cjs.map +1 -1
- package/dist/cjs/route.cjs +200 -215
- package/dist/cjs/route.cjs.map +1 -1
- package/dist/cjs/router.cjs +18 -16
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/cjs/routerContext.cjs +8 -22
- package/dist/cjs/routerContext.cjs.map +1 -1
- package/dist/cjs/scroll-restoration.cjs +25 -35
- package/dist/cjs/scroll-restoration.cjs.map +1 -1
- package/dist/cjs/ssr/RouterClient.cjs +31 -42
- package/dist/cjs/ssr/RouterClient.cjs.map +1 -1
- package/dist/cjs/ssr/RouterServer.cjs +44 -51
- package/dist/cjs/ssr/RouterServer.cjs.map +1 -1
- package/dist/cjs/ssr/client.cjs +2 -4
- package/dist/cjs/ssr/defaultRenderHandler.cjs +12 -16
- package/dist/cjs/ssr/defaultRenderHandler.cjs.map +1 -1
- package/dist/cjs/ssr/defaultStreamHandler.cjs +13 -18
- package/dist/cjs/ssr/defaultStreamHandler.cjs.map +1 -1
- package/dist/cjs/ssr/renderRouterToStream.cjs +27 -55
- package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -1
- package/dist/cjs/ssr/renderRouterToString.cjs +33 -57
- package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
- package/dist/cjs/ssr/server.cjs +18 -18
- package/dist/cjs/useBlocker.cjs +138 -173
- package/dist/cjs/useBlocker.cjs.map +1 -1
- package/dist/cjs/useBlocker.d.cts +8 -5
- package/dist/cjs/useCanGoBack.cjs +6 -5
- package/dist/cjs/useCanGoBack.cjs.map +1 -1
- package/dist/cjs/useLoaderData.cjs +12 -11
- package/dist/cjs/useLoaderData.cjs.map +1 -1
- package/dist/cjs/useLoaderDeps.cjs +12 -14
- package/dist/cjs/useLoaderDeps.cjs.map +1 -1
- package/dist/cjs/useLocation.cjs +6 -7
- package/dist/cjs/useLocation.cjs.map +1 -1
- package/dist/cjs/useMatch.cjs +27 -49
- package/dist/cjs/useMatch.cjs.map +1 -1
- package/dist/cjs/useNavigate.cjs +20 -38
- package/dist/cjs/useNavigate.cjs.map +1 -1
- package/dist/cjs/useParams.cjs +14 -13
- package/dist/cjs/useParams.cjs.map +1 -1
- package/dist/cjs/useRouteContext.cjs +9 -8
- package/dist/cjs/useRouteContext.cjs.map +1 -1
- package/dist/cjs/useRouter.cjs +13 -26
- package/dist/cjs/useRouter.cjs.map +1 -1
- package/dist/cjs/useRouterState.cjs +29 -37
- package/dist/cjs/useRouterState.cjs.map +1 -1
- package/dist/cjs/useSearch.cjs +13 -12
- package/dist/cjs/useSearch.cjs.map +1 -1
- package/dist/cjs/utils.cjs +58 -51
- package/dist/cjs/utils.cjs.map +1 -1
- package/dist/esm/Asset.js +82 -126
- package/dist/esm/Asset.js.map +1 -1
- package/dist/esm/CatchBoundary.js +46 -50
- package/dist/esm/CatchBoundary.js.map +1 -1
- package/dist/esm/ClientOnly.js +58 -22
- package/dist/esm/ClientOnly.js.map +1 -1
- package/dist/esm/HeadContent.dev.js +36 -32
- package/dist/esm/HeadContent.dev.js.map +1 -1
- package/dist/esm/HeadContent.js +23 -18
- package/dist/esm/HeadContent.js.map +1 -1
- package/dist/esm/Match.js +322 -378
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Matches.js +102 -135
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/RouterProvider.js +25 -39
- package/dist/esm/RouterProvider.js.map +1 -1
- package/dist/esm/SafeFragment.js +6 -5
- package/dist/esm/SafeFragment.js.map +1 -1
- package/dist/esm/ScriptOnce.js +16 -19
- package/dist/esm/ScriptOnce.js.map +1 -1
- package/dist/esm/Scripts.js +40 -54
- package/dist/esm/Scripts.js.map +1 -1
- package/dist/esm/ScrollRestoration.js +25 -29
- package/dist/esm/ScrollRestoration.js.map +1 -1
- package/dist/esm/Transitioner.js +90 -110
- package/dist/esm/Transitioner.js.map +1 -1
- package/dist/esm/awaited.js +21 -34
- package/dist/esm/awaited.js.map +1 -1
- package/dist/esm/fileRoute.js +90 -92
- package/dist/esm/fileRoute.js.map +1 -1
- package/dist/esm/headContentUtils.js +129 -152
- package/dist/esm/headContentUtils.js.map +1 -1
- package/dist/esm/index.dev.js +15 -115
- package/dist/esm/index.js +17 -116
- package/dist/esm/lazyRouteComponent.js +47 -54
- package/dist/esm/lazyRouteComponent.js.map +1 -1
- package/dist/esm/link.js +299 -314
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/matchContext.js +7 -7
- package/dist/esm/matchContext.js.map +1 -1
- package/dist/esm/not-found.js +23 -33
- package/dist/esm/not-found.js.map +1 -1
- package/dist/esm/renderRouteNotFound.js +20 -15
- package/dist/esm/renderRouteNotFound.js.map +1 -1
- package/dist/esm/route.js +193 -218
- package/dist/esm/route.js.map +1 -1
- package/dist/esm/router.js +17 -17
- package/dist/esm/router.js.map +1 -1
- package/dist/esm/routerContext.js +6 -5
- package/dist/esm/routerContext.js.map +1 -1
- package/dist/esm/scroll-restoration.js +23 -34
- package/dist/esm/scroll-restoration.js.map +1 -1
- package/dist/esm/ssr/RouterClient.js +29 -41
- package/dist/esm/ssr/RouterClient.js.map +1 -1
- package/dist/esm/ssr/RouterServer.js +40 -48
- package/dist/esm/ssr/RouterServer.js.map +1 -1
- package/dist/esm/ssr/client.js +1 -4
- package/dist/esm/ssr/defaultRenderHandler.js +11 -15
- package/dist/esm/ssr/defaultRenderHandler.js.map +1 -1
- package/dist/esm/ssr/defaultStreamHandler.js +12 -17
- package/dist/esm/ssr/defaultStreamHandler.js.map +1 -1
- package/dist/esm/ssr/renderRouterToStream.js +24 -37
- package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
- package/dist/esm/ssr/renderRouterToString.js +31 -40
- package/dist/esm/ssr/renderRouterToString.js.map +1 -1
- package/dist/esm/ssr/server.js +3 -10
- package/dist/esm/useBlocker.d.ts +8 -5
- package/dist/esm/useBlocker.js +134 -155
- package/dist/esm/useBlocker.js.map +1 -1
- package/dist/esm/useCanGoBack.js +6 -5
- package/dist/esm/useCanGoBack.js.map +1 -1
- package/dist/esm/useLoaderData.js +12 -11
- package/dist/esm/useLoaderData.js.map +1 -1
- package/dist/esm/useLoaderDeps.js +12 -14
- package/dist/esm/useLoaderDeps.js.map +1 -1
- package/dist/esm/useLocation.js +6 -7
- package/dist/esm/useLocation.js.map +1 -1
- package/dist/esm/useMatch.js +23 -31
- package/dist/esm/useMatch.js.map +1 -1
- package/dist/esm/useNavigate.js +18 -22
- package/dist/esm/useNavigate.js.map +1 -1
- package/dist/esm/useParams.js +14 -13
- package/dist/esm/useParams.js.map +1 -1
- package/dist/esm/useRouteContext.js +9 -8
- package/dist/esm/useRouteContext.js.map +1 -1
- package/dist/esm/useRouter.js +9 -8
- package/dist/esm/useRouter.js.map +1 -1
- package/dist/esm/useRouterState.js +28 -37
- package/dist/esm/useRouterState.js.map +1 -1
- package/dist/esm/useSearch.js +13 -12
- package/dist/esm/useSearch.js.map +1 -1
- package/dist/esm/utils.js +56 -35
- package/dist/esm/utils.js.map +1 -1
- package/dist/source/useBlocker.d.ts +8 -5
- package/dist/source/useBlocker.jsx +2 -2
- package/dist/source/useBlocker.jsx.map +1 -1
- package/package.json +3 -3
- package/src/useBlocker.tsx +15 -10
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/index.dev.cjs.map +0 -1
- package/dist/cjs/ssr/client.cjs.map +0 -1
- package/dist/cjs/ssr/server.cjs.map +0 -1
- package/dist/esm/index.dev.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/ssr/client.js.map +0 -1
- package/dist/esm/ssr/server.js.map +0 -1
|
@@ -1,38 +1,27 @@
|
|
|
1
|
-
import { createComponent } from "solid-js/web";
|
|
2
|
-
import { defaultGetScrollRestorationKey, restoreScroll, escapeHtml, storageKey } from "@tanstack/router-core";
|
|
3
|
-
import { isServer } from "@tanstack/router-core/isServer";
|
|
4
1
|
import { useRouter } from "./useRouter.js";
|
|
5
2
|
import { ScriptOnce } from "./ScriptOnce.js";
|
|
3
|
+
import { defaultGetScrollRestorationKey, escapeHtml, restoreScroll, storageKey } from "@tanstack/router-core";
|
|
4
|
+
import { createComponent } from "solid-js/web";
|
|
5
|
+
import { isServer } from "@tanstack/router-core/isServer";
|
|
6
|
+
//#region src/scroll-restoration.tsx
|
|
6
7
|
function ScrollRestoration() {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const restoreScrollOptions = {
|
|
23
|
-
storageKey,
|
|
24
|
-
shouldScrollRestoration: true
|
|
25
|
-
};
|
|
26
|
-
if (resolvedKey) {
|
|
27
|
-
restoreScrollOptions.key = resolvedKey;
|
|
28
|
-
}
|
|
29
|
-
return createComponent(ScriptOnce, {
|
|
30
|
-
get children() {
|
|
31
|
-
return `(${restoreScroll.toString()})(${escapeHtml(JSON.stringify(restoreScrollOptions))})`;
|
|
32
|
-
}
|
|
33
|
-
});
|
|
8
|
+
const router = useRouter();
|
|
9
|
+
if (!router.isScrollRestoring || !(isServer ?? router.isServer)) return null;
|
|
10
|
+
if (typeof router.options.scrollRestoration === "function") {
|
|
11
|
+
if (!router.options.scrollRestoration({ location: router.latestLocation })) return null;
|
|
12
|
+
}
|
|
13
|
+
const userKey = (router.options.getScrollRestorationKey || defaultGetScrollRestorationKey)(router.latestLocation);
|
|
14
|
+
const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0;
|
|
15
|
+
const restoreScrollOptions = {
|
|
16
|
+
storageKey,
|
|
17
|
+
shouldScrollRestoration: true
|
|
18
|
+
};
|
|
19
|
+
if (resolvedKey) restoreScrollOptions.key = resolvedKey;
|
|
20
|
+
return createComponent(ScriptOnce, { get children() {
|
|
21
|
+
return `(${restoreScroll.toString()})(${escapeHtml(JSON.stringify(restoreScrollOptions))})`;
|
|
22
|
+
} });
|
|
34
23
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
//# sourceMappingURL=scroll-restoration.js.map
|
|
24
|
+
//#endregion
|
|
25
|
+
export { ScrollRestoration };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=scroll-restoration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-restoration.js","sources":["../../src/scroll-restoration.tsx"],"sourcesContent":["import {\n defaultGetScrollRestorationKey,\n escapeHtml,\n restoreScroll,\n storageKey,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { useRouter } from './useRouter'\nimport { ScriptOnce } from './ScriptOnce'\n\nexport function ScrollRestoration() {\n const router = useRouter()\n if (!router.isScrollRestoring || !(isServer ?? router.isServer)) {\n return null\n }\n if (typeof router.options.scrollRestoration === 'function') {\n const shouldRestore = router.options.scrollRestoration({\n location: router.latestLocation,\n })\n if (!shouldRestore) {\n return null\n }\n }\n const getKey =\n router.options.getScrollRestorationKey || defaultGetScrollRestorationKey\n const userKey = getKey(router.latestLocation)\n const resolvedKey =\n userKey !== defaultGetScrollRestorationKey(router.latestLocation)\n ? userKey\n : undefined\n\n const restoreScrollOptions: Parameters<typeof restoreScroll>[0] = {\n storageKey,\n shouldScrollRestoration: true,\n }\n if (resolvedKey) {\n restoreScrollOptions.key = resolvedKey\n }\n\n return (\n <ScriptOnce\n children={`(${restoreScroll.toString()})(${escapeHtml(JSON.stringify(restoreScrollOptions))})`}\n />\n )\n}\n"],"
|
|
1
|
+
{"version":3,"file":"scroll-restoration.js","names":["defaultGetScrollRestorationKey","escapeHtml","restoreScroll","storageKey","isServer","useRouter","ScriptOnce","ScrollRestoration","router","isScrollRestoring","options","scrollRestoration","shouldRestore","location","latestLocation","getKey","getScrollRestorationKey","userKey","resolvedKey","undefined","restoreScrollOptions","Parameters","shouldScrollRestoration","key","_$createComponent","children","toString","JSON","stringify"],"sources":["../../src/scroll-restoration.tsx"],"sourcesContent":["import {\n defaultGetScrollRestorationKey,\n escapeHtml,\n restoreScroll,\n storageKey,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { useRouter } from './useRouter'\nimport { ScriptOnce } from './ScriptOnce'\n\nexport function ScrollRestoration() {\n const router = useRouter()\n if (!router.isScrollRestoring || !(isServer ?? router.isServer)) {\n return null\n }\n if (typeof router.options.scrollRestoration === 'function') {\n const shouldRestore = router.options.scrollRestoration({\n location: router.latestLocation,\n })\n if (!shouldRestore) {\n return null\n }\n }\n const getKey =\n router.options.getScrollRestorationKey || defaultGetScrollRestorationKey\n const userKey = getKey(router.latestLocation)\n const resolvedKey =\n userKey !== defaultGetScrollRestorationKey(router.latestLocation)\n ? userKey\n : undefined\n\n const restoreScrollOptions: Parameters<typeof restoreScroll>[0] = {\n storageKey,\n shouldScrollRestoration: true,\n }\n if (resolvedKey) {\n restoreScrollOptions.key = resolvedKey\n }\n\n return (\n <ScriptOnce\n children={`(${restoreScroll.toString()})(${escapeHtml(JSON.stringify(restoreScrollOptions))})`}\n />\n )\n}\n"],"mappings":";;;;;;AAUA,SAAgBO,oBAAoB;CAClC,MAAMC,SAASH,WAAW;AAC1B,KAAI,CAACG,OAAOC,qBAAqB,EAAEL,YAAYI,OAAOJ,UACpD,QAAO;AAET,KAAI,OAAOI,OAAOE,QAAQC,sBAAsB;MAI1C,CAHkBH,OAAOE,QAAQC,kBAAkB,EACrDE,UAAUL,OAAOM,gBAClB,CAAC,CAEA,QAAO;;CAKX,MAAMG,WADJT,OAAOE,QAAQM,2BAA2BhB,gCACrBQ,OAAOM,eAAe;CAC7C,MAAMI,cACJD,YAAYjB,+BAA+BQ,OAAOM,eAAe,GAC7DG,UACAE,KAAAA;CAEN,MAAMC,uBAA4D;EAChEjB;EACAmB,yBAAyB;EAC1B;AACD,KAAIJ,YACFE,sBAAqBG,MAAML;AAG7B,QAAAM,gBACGlB,YAAU,EAAA,IACTmB,WAAQ;AAAA,SAAE,IAAIvB,cAAcwB,UAAU,CAAA,IAAKzB,WAAW0B,KAAKC,UAAUR,qBAAqB,CAAC,CAAA;IAAG,CAAA"}
|
|
@@ -1,45 +1,33 @@
|
|
|
1
|
-
import { createComponent, memo } from "solid-js/web";
|
|
2
|
-
import { hydrate } from "@tanstack/router-core/ssr/client";
|
|
3
1
|
import { Await } from "../awaited.js";
|
|
4
|
-
import { HeadContent } from "../HeadContent.js";
|
|
5
2
|
import { RouterProvider } from "../RouterProvider.js";
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import { HeadContent } from "../HeadContent.js";
|
|
4
|
+
import { createComponent, memo } from "solid-js/web";
|
|
5
|
+
import { hydrate } from "@tanstack/router-core/ssr/client";
|
|
6
|
+
//#region src/ssr/RouterClient.tsx
|
|
7
|
+
var hydrationPromise;
|
|
8
|
+
var Dummy = (props) => memo(() => props.children);
|
|
8
9
|
function RouterClient(props) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return [createComponent(Dummy, {
|
|
29
|
-
get children() {
|
|
30
|
-
return [createComponent(HeadContent, {}), memo(() => props2.children)];
|
|
31
|
-
}
|
|
32
|
-
}), createComponent(Dummy, {})];
|
|
33
|
-
}
|
|
34
|
-
})
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
})
|
|
40
|
-
});
|
|
10
|
+
if (!hydrationPromise) if (!props.router.state.matches.length) hydrationPromise = hydrate(props.router);
|
|
11
|
+
else hydrationPromise = Promise.resolve();
|
|
12
|
+
return createComponent(Await, {
|
|
13
|
+
promise: hydrationPromise,
|
|
14
|
+
children: () => createComponent(Dummy, { get children() {
|
|
15
|
+
return createComponent(Dummy, { get children() {
|
|
16
|
+
return createComponent(RouterProvider, {
|
|
17
|
+
get router() {
|
|
18
|
+
return props.router;
|
|
19
|
+
},
|
|
20
|
+
InnerWrap: (props) => createComponent(Dummy, { get children() {
|
|
21
|
+
return [createComponent(Dummy, { get children() {
|
|
22
|
+
return [createComponent(HeadContent, {}), memo(() => props.children)];
|
|
23
|
+
} }), createComponent(Dummy, {})];
|
|
24
|
+
} })
|
|
25
|
+
});
|
|
26
|
+
} });
|
|
27
|
+
} })
|
|
28
|
+
});
|
|
41
29
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
//# sourceMappingURL=RouterClient.js.map
|
|
30
|
+
//#endregion
|
|
31
|
+
export { RouterClient };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=RouterClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterClient.js","sources":["../../../src/ssr/RouterClient.tsx"],"sourcesContent":["import { hydrate } from '@tanstack/router-core/ssr/client'\nimport { Await } from '../awaited'\nimport { HeadContent } from '../HeadContent'\nimport { RouterProvider } from '../RouterProvider'\nimport type { AnyRouter } from '@tanstack/router-core'\nimport type { JSXElement } from 'solid-js'\n\nlet hydrationPromise: Promise<void | Array<Array<void>>> | undefined\n\nconst Dummy = (props: { children?: JSXElement }) => <>{props.children}</>\n\nexport function RouterClient(props: { router: AnyRouter }) {\n if (!hydrationPromise) {\n if (!props.router.state.matches.length) {\n hydrationPromise = hydrate(props.router)\n } else {\n hydrationPromise = Promise.resolve()\n }\n }\n return (\n <Await\n promise={hydrationPromise}\n children={() => (\n <Dummy>\n <Dummy>\n <RouterProvider\n router={props.router}\n InnerWrap={(props) => (\n <Dummy>\n <Dummy>\n <HeadContent />\n {props.children}\n </Dummy>\n <Dummy />\n </Dummy>\n )}\n />\n </Dummy>\n </Dummy>\n )}\n />\n )\n}\n"],"
|
|
1
|
+
{"version":3,"file":"RouterClient.js","names":["hydrate","Await","HeadContent","RouterProvider","AnyRouter","JSXElement","hydrationPromise","Promise","Array","Dummy","props","children","_$memo","RouterClient","router","state","matches","length","resolve","_$createComponent","promise","InnerWrap"],"sources":["../../../src/ssr/RouterClient.tsx"],"sourcesContent":["import { hydrate } from '@tanstack/router-core/ssr/client'\nimport { Await } from '../awaited'\nimport { HeadContent } from '../HeadContent'\nimport { RouterProvider } from '../RouterProvider'\nimport type { AnyRouter } from '@tanstack/router-core'\nimport type { JSXElement } from 'solid-js'\n\nlet hydrationPromise: Promise<void | Array<Array<void>>> | undefined\n\nconst Dummy = (props: { children?: JSXElement }) => <>{props.children}</>\n\nexport function RouterClient(props: { router: AnyRouter }) {\n if (!hydrationPromise) {\n if (!props.router.state.matches.length) {\n hydrationPromise = hydrate(props.router)\n } else {\n hydrationPromise = Promise.resolve()\n }\n }\n return (\n <Await\n promise={hydrationPromise}\n children={() => (\n <Dummy>\n <Dummy>\n <RouterProvider\n router={props.router}\n InnerWrap={(props) => (\n <Dummy>\n <Dummy>\n <HeadContent />\n {props.children}\n </Dummy>\n <Dummy />\n </Dummy>\n )}\n />\n </Dummy>\n </Dummy>\n )}\n />\n )\n}\n"],"mappings":";;;;;;AAOA,IAAIM;AAEJ,IAAMG,SAASC,UAAgCE,WAAQF,MAAMC,SAAY;AAEzE,SAAgBE,aAAaH,OAA8B;AACzD,KAAI,CAACJ,iBACH,KAAI,CAACI,MAAMI,OAAOC,MAAMC,QAAQC,OAC9BX,oBAAmBN,QAAQU,MAAMI,OAAO;KAExCR,oBAAmBC,QAAQW,SAAS;AAGxC,QAAAC,gBACGlB,OAAK;EACJmB,SAASd;EACTK,gBAAUQ,gBACPV,OAAK,EAAA,IAAAE,WAAA;AAAA,UAAAQ,gBACHV,OAAK,EAAA,IAAAE,WAAA;AAAA,WAAAQ,gBACHhB,gBAAc;KAAA,IACbW,SAAM;AAAA,aAAEJ,MAAMI;;KACdO,YAAYX,UAAKS,gBACdV,OAAK,EAAA,IAAAE,WAAA;AAAA,aAAA,CAAAQ,gBACHV,OAAK,EAAA,IAAAE,WAAA;AAAA,cAAA,CAAAQ,gBACHjB,aAAW,EAAA,CAAA,EAAAU,WACXF,MAAMC,SAAQ,CAAA;SAAA,CAAA,EAAAQ,gBAEhBV,OAAK,EAAA,CAAA,CAAA;QAAA,CAAA;KAET,CAAA;MAAA,CAAA;KAAA,CAAA;EAIR,CAAA"}
|
|
@@ -1,56 +1,48 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { MetaProvider } from "@solidjs/meta";
|
|
1
|
+
import { RouterProvider } from "../RouterProvider.js";
|
|
3
2
|
import { Asset } from "../Asset.js";
|
|
4
3
|
import { useTags } from "../headContentUtils.js";
|
|
5
|
-
import { RouterProvider } from "../RouterProvider.js";
|
|
6
4
|
import { Scripts } from "../Scripts.js";
|
|
5
|
+
import { Hydration, NoHydration, createComponent, insert, ssr, template, useAssets } from "solid-js/web";
|
|
6
|
+
import { MetaProvider } from "@solidjs/meta";
|
|
7
|
+
//#region src/ssr/RouterServer.tsx
|
|
7
8
|
var _tmpl$ = /* @__PURE__ */ template(`<html><head></head><body>`);
|
|
8
9
|
function ServerHeadContent() {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
});
|
|
17
|
-
return null;
|
|
10
|
+
const tags = useTags();
|
|
11
|
+
useAssets(() => {
|
|
12
|
+
return createComponent(MetaProvider, { get children() {
|
|
13
|
+
return tags().map((tag) => createComponent(Asset, tag));
|
|
14
|
+
} });
|
|
15
|
+
});
|
|
16
|
+
return null;
|
|
18
17
|
}
|
|
19
|
-
|
|
18
|
+
var docType = ssr("<!DOCTYPE html>");
|
|
20
19
|
function RouterServer(props) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
}));
|
|
47
|
-
return _el$;
|
|
48
|
-
})()];
|
|
49
|
-
}
|
|
50
|
-
});
|
|
20
|
+
return createComponent(NoHydration, { get children() {
|
|
21
|
+
return [docType, (() => {
|
|
22
|
+
var _el$ = _tmpl$(), _el$3 = _el$.firstChild;
|
|
23
|
+
insert(_el$3, createComponent(Hydration, { get children() {
|
|
24
|
+
return createComponent(RouterProvider, {
|
|
25
|
+
get router() {
|
|
26
|
+
return props.router;
|
|
27
|
+
},
|
|
28
|
+
InnerWrap: (props) => createComponent(NoHydration, { get children() {
|
|
29
|
+
return createComponent(MetaProvider, { get children() {
|
|
30
|
+
return [
|
|
31
|
+
createComponent(ServerHeadContent, {}),
|
|
32
|
+
createComponent(Hydration, { get children() {
|
|
33
|
+
return props.children;
|
|
34
|
+
} }),
|
|
35
|
+
createComponent(Scripts, {})
|
|
36
|
+
];
|
|
37
|
+
} });
|
|
38
|
+
} })
|
|
39
|
+
});
|
|
40
|
+
} }));
|
|
41
|
+
return _el$;
|
|
42
|
+
})()];
|
|
43
|
+
} });
|
|
51
44
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
//# sourceMappingURL=RouterServer.js.map
|
|
45
|
+
//#endregion
|
|
46
|
+
export { RouterServer };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=RouterServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterServer.js","sources":["../../../src/ssr/RouterServer.tsx"],"sourcesContent":["import {\n Hydration,\n HydrationScript,\n NoHydration,\n ssr,\n useAssets,\n} from 'solid-js/web'\nimport { MetaProvider } from '@solidjs/meta'\nimport { Asset } from '../Asset'\nimport { useTags } from '../headContentUtils'\nimport { RouterProvider } from '../RouterProvider'\nimport { Scripts } from '../Scripts'\nimport type { AnyRouter } from '@tanstack/router-core'\n\nexport function ServerHeadContent() {\n const tags = useTags()\n useAssets(() => {\n return (\n <MetaProvider>\n {tags().map((tag) => (\n <Asset {...tag} />\n ))}\n </MetaProvider>\n )\n })\n return null\n}\n\nconst docType = ssr('<!DOCTYPE html>')\n\nexport function RouterServer<TRouter extends AnyRouter>(props: {\n router: TRouter\n}) {\n return (\n <NoHydration>\n {docType as any}\n <html>\n <head>\n <HydrationScript />\n </head>\n <body>\n <Hydration>\n <RouterProvider\n router={props.router}\n InnerWrap={(props) => (\n <NoHydration>\n <MetaProvider>\n <ServerHeadContent />\n <Hydration>{props.children}</Hydration>\n <Scripts />\n </MetaProvider>\n </NoHydration>\n )}\n />\n </Hydration>\n </body>\n </html>\n </NoHydration>\n )\n}\n"],"
|
|
1
|
+
{"version":3,"file":"RouterServer.js","names":["Hydration","HydrationScript","NoHydration","ssr","useAssets","MetaProvider","Asset","useTags","RouterProvider","Scripts","AnyRouter","ServerHeadContent","tags","_$createComponent","children","map","tag","docType","RouterServer","props","router","TRouter","_el$","_tmpl$","_el$3","firstChild","_$insert","InnerWrap"],"sources":["../../../src/ssr/RouterServer.tsx"],"sourcesContent":["import {\n Hydration,\n HydrationScript,\n NoHydration,\n ssr,\n useAssets,\n} from 'solid-js/web'\nimport { MetaProvider } from '@solidjs/meta'\nimport { Asset } from '../Asset'\nimport { useTags } from '../headContentUtils'\nimport { RouterProvider } from '../RouterProvider'\nimport { Scripts } from '../Scripts'\nimport type { AnyRouter } from '@tanstack/router-core'\n\nexport function ServerHeadContent() {\n const tags = useTags()\n useAssets(() => {\n return (\n <MetaProvider>\n {tags().map((tag) => (\n <Asset {...tag} />\n ))}\n </MetaProvider>\n )\n })\n return null\n}\n\nconst docType = ssr('<!DOCTYPE html>')\n\nexport function RouterServer<TRouter extends AnyRouter>(props: {\n router: TRouter\n}) {\n return (\n <NoHydration>\n {docType as any}\n <html>\n <head>\n <HydrationScript />\n </head>\n <body>\n <Hydration>\n <RouterProvider\n router={props.router}\n InnerWrap={(props) => (\n <NoHydration>\n <MetaProvider>\n <ServerHeadContent />\n <Hydration>{props.children}</Hydration>\n <Scripts />\n </MetaProvider>\n </NoHydration>\n )}\n />\n </Hydration>\n </body>\n </html>\n </NoHydration>\n )\n}\n"],"mappings":";;;;;;;;AAcA,SAAgBW,oBAAoB;CAClC,MAAMC,OAAOL,SAAS;AACtBH,iBAAgB;AACd,SAAAS,gBACGR,cAAY,EAAA,IAAAS,WAAA;AAAA,UACVF,MAAM,CAACG,KAAKC,QAAGH,gBACbP,OAAUU,IACZ,CAAC;KAAA,CAAA;GAGN;AACF,QAAO;;AAGT,IAAMC,UAAUd,IAAI,kBAAkB;AAEtC,SAAgBe,aAAwCC,OAErD;AACD,QAAAN,gBACGX,aAAW,EAAA,IAAAY,WAAA;AAAA,SAAA,CACTG,gBAAc;GAAA,IAAAK,OAAAC,QAAA,EAAAC,QAAAF,KAAAG;AAAAC,UAAAF,OAAAX,gBAMVb,WAAS,EAAA,IAAAc,WAAA;AAAA,WAAAD,gBACPL,gBAAc;KAAA,IACbY,SAAM;AAAA,aAAED,MAAMC;;KACdO,YAAYR,UAAKN,gBACdX,aAAW,EAAA,IAAAY,WAAA;AAAA,aAAAD,gBACTR,cAAY,EAAA,IAAAS,WAAA;AAAA,cAAA;QAAAD,gBACVF,mBAAiB,EAAA,CAAA;QAAAE,gBACjBb,WAAS,EAAA,IAAAc,WAAA;AAAA,gBAAEK,MAAML;WAAQ,CAAA;QAAAD,gBACzBJ,SAAO,EAAA,CAAA;QAAA;SAAA,CAAA;QAAA,CAAA;KAGb,CAAA;MAAA,CAAA,CAAA;AAAA,UAAAa;MAAA,CAAA;IAAA,CAAA"}
|
package/dist/esm/ssr/client.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import { createComponent } from "solid-js/web";
|
|
2
|
-
import { defineHandlerCallback } from "@tanstack/router-core/ssr/server";
|
|
3
1
|
import { RouterServer } from "./RouterServer.js";
|
|
4
2
|
import { renderRouterToString } from "./renderRouterToString.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}) => renderRouterToString({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
router
|
|
13
|
-
})
|
|
3
|
+
import { createComponent } from "solid-js/web";
|
|
4
|
+
import { defineHandlerCallback } from "@tanstack/router-core/ssr/server";
|
|
5
|
+
//#region src/ssr/defaultRenderHandler.tsx
|
|
6
|
+
var defaultRenderHandler = defineHandlerCallback(({ router, responseHeaders }) => renderRouterToString({
|
|
7
|
+
router,
|
|
8
|
+
responseHeaders,
|
|
9
|
+
children: () => createComponent(RouterServer, { router })
|
|
14
10
|
}));
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=defaultRenderHandler.js.map
|
|
11
|
+
//#endregion
|
|
12
|
+
export { defaultRenderHandler };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=defaultRenderHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultRenderHandler.js","sources":["../../../src/ssr/defaultRenderHandler.tsx"],"sourcesContent":["import { defineHandlerCallback } from '@tanstack/router-core/ssr/server'\nimport { RouterServer } from './RouterServer'\nimport { renderRouterToString } from './renderRouterToString'\n\nexport const defaultRenderHandler = defineHandlerCallback(\n ({ router, responseHeaders }) =>\n renderRouterToString({\n router,\n responseHeaders,\n children: () => <RouterServer router={router} />,\n }),\n)\n"],"
|
|
1
|
+
{"version":3,"file":"defaultRenderHandler.js","names":["defineHandlerCallback","RouterServer","renderRouterToString","defaultRenderHandler","router","responseHeaders","children","_$createComponent"],"sources":["../../../src/ssr/defaultRenderHandler.tsx"],"sourcesContent":["import { defineHandlerCallback } from '@tanstack/router-core/ssr/server'\nimport { RouterServer } from './RouterServer'\nimport { renderRouterToString } from './renderRouterToString'\n\nexport const defaultRenderHandler = defineHandlerCallback(\n ({ router, responseHeaders }) =>\n renderRouterToString({\n router,\n responseHeaders,\n children: () => <RouterServer router={router} />,\n }),\n)\n"],"mappings":";;;;;AAIA,IAAaG,uBAAuBH,uBACjC,EAAEI,QAAQC,sBACTH,qBAAqB;CACnBE;CACAC;CACAC,gBAAUC,gBAAON,cAAY,EAASG,QAAM,CAAA;CAC7C,CACL,CAAC"}
|
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
import { createComponent } from "solid-js/web";
|
|
2
|
-
import { defineHandlerCallback } from "@tanstack/router-core/ssr/server";
|
|
3
1
|
import { RouterServer } from "./RouterServer.js";
|
|
4
2
|
import { renderRouterToStream } from "./renderRouterToStream.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
children: () => createComponent(RouterServer, {
|
|
14
|
-
router
|
|
15
|
-
})
|
|
3
|
+
import { createComponent } from "solid-js/web";
|
|
4
|
+
import { defineHandlerCallback } from "@tanstack/router-core/ssr/server";
|
|
5
|
+
//#region src/ssr/defaultStreamHandler.tsx
|
|
6
|
+
var defaultStreamHandler = defineHandlerCallback(({ request, router, responseHeaders }) => renderRouterToStream({
|
|
7
|
+
request,
|
|
8
|
+
router,
|
|
9
|
+
responseHeaders,
|
|
10
|
+
children: () => createComponent(RouterServer, { router })
|
|
16
11
|
}));
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=defaultStreamHandler.js.map
|
|
12
|
+
//#endregion
|
|
13
|
+
export { defaultStreamHandler };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=defaultStreamHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultStreamHandler.js","sources":["../../../src/ssr/defaultStreamHandler.tsx"],"sourcesContent":["import { defineHandlerCallback } from '@tanstack/router-core/ssr/server'\nimport { RouterServer } from './RouterServer'\nimport { renderRouterToStream } from './renderRouterToStream'\n\nexport const defaultStreamHandler = defineHandlerCallback(\n ({ request, router, responseHeaders }) =>\n renderRouterToStream({\n request,\n router,\n responseHeaders,\n children: () => <RouterServer router={router} />,\n }),\n)\n"],"
|
|
1
|
+
{"version":3,"file":"defaultStreamHandler.js","names":["defineHandlerCallback","RouterServer","renderRouterToStream","defaultStreamHandler","request","router","responseHeaders","children","_$createComponent"],"sources":["../../../src/ssr/defaultStreamHandler.tsx"],"sourcesContent":["import { defineHandlerCallback } from '@tanstack/router-core/ssr/server'\nimport { RouterServer } from './RouterServer'\nimport { renderRouterToStream } from './renderRouterToStream'\n\nexport const defaultStreamHandler = defineHandlerCallback(\n ({ request, router, responseHeaders }) =>\n renderRouterToStream({\n request,\n router,\n responseHeaders,\n children: () => <RouterServer router={router} />,\n }),\n)\n"],"mappings":";;;;;AAIA,IAAaG,uBAAuBH,uBACjC,EAAEI,SAASC,QAAQC,sBAClBJ,qBAAqB;CACnBE;CACAC;CACAC;CACAC,gBAAUC,gBAAOP,cAAY,EAASI,QAAM,CAAA;CAC7C,CACL,CAAC"}
|
|
@@ -1,41 +1,28 @@
|
|
|
1
|
+
import { makeSsrSerovalPlugin } from "@tanstack/router-core";
|
|
1
2
|
import * as Solid from "solid-js/web";
|
|
2
3
|
import { memo } from "solid-js/web";
|
|
3
|
-
import { isbot } from "isbot";
|
|
4
4
|
import { transformReadableStreamWithRouter } from "@tanstack/router-core/ssr/server";
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const stream = Solid.renderToStream(() => [docType, memo(children)], {
|
|
25
|
-
nonce: router.options.ssr?.nonce,
|
|
26
|
-
plugins: serovalPlugins
|
|
27
|
-
});
|
|
28
|
-
if (isbot(request.headers.get("User-Agent"))) {
|
|
29
|
-
await stream;
|
|
30
|
-
}
|
|
31
|
-
stream.pipeTo(writable);
|
|
32
|
-
const responseStream = transformReadableStreamWithRouter(router, readable);
|
|
33
|
-
return new Response(responseStream, {
|
|
34
|
-
status: router.state.statusCode,
|
|
35
|
-
headers: responseHeaders
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
export {
|
|
39
|
-
renderRouterToStream
|
|
5
|
+
import { isbot } from "isbot";
|
|
6
|
+
//#region src/ssr/renderRouterToStream.tsx
|
|
7
|
+
var renderRouterToStream = async ({ request, router, responseHeaders, children }) => {
|
|
8
|
+
const { writable, readable } = new TransformStream();
|
|
9
|
+
const docType = Solid.ssr("<!DOCTYPE html>");
|
|
10
|
+
const serovalPlugins = (router.options?.serializationAdapters || router.options.ssr?.serializationAdapters)?.map((adapter) => {
|
|
11
|
+
return makeSsrSerovalPlugin(adapter, { didRun: false });
|
|
12
|
+
});
|
|
13
|
+
const stream = Solid.renderToStream(() => [docType, memo(children)], {
|
|
14
|
+
nonce: router.options.ssr?.nonce,
|
|
15
|
+
plugins: serovalPlugins
|
|
16
|
+
});
|
|
17
|
+
if (isbot(request.headers.get("User-Agent"))) await stream;
|
|
18
|
+
stream.pipeTo(writable);
|
|
19
|
+
const responseStream = transformReadableStreamWithRouter(router, readable);
|
|
20
|
+
return new Response(responseStream, {
|
|
21
|
+
status: router.state.statusCode,
|
|
22
|
+
headers: responseHeaders
|
|
23
|
+
});
|
|
40
24
|
};
|
|
41
|
-
//#
|
|
25
|
+
//#endregion
|
|
26
|
+
export { renderRouterToStream };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=renderRouterToStream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderRouterToStream.js","sources":["../../../src/ssr/renderRouterToStream.tsx"],"sourcesContent":["import * as Solid from 'solid-js/web'\nimport { isbot } from 'isbot'\nimport { transformReadableStreamWithRouter } from '@tanstack/router-core/ssr/server'\nimport { makeSsrSerovalPlugin } from '@tanstack/router-core'\nimport type { JSXElement } from 'solid-js'\nimport type { ReadableStream } from 'node:stream/web'\nimport type { AnyRouter } from '@tanstack/router-core'\n\nexport const renderRouterToStream = async ({\n request,\n router,\n responseHeaders,\n children,\n}: {\n request: Request\n router: AnyRouter\n responseHeaders: Headers\n children: () => JSXElement\n}) => {\n const { writable, readable } = new TransformStream()\n\n const docType = Solid.ssr('<!DOCTYPE html>')\n\n const serializationAdapters =\n (router.options as any)?.serializationAdapters ||\n (router.options.ssr as any)?.serializationAdapters\n const serovalPlugins = serializationAdapters?.map((adapter: any) => {\n const plugin = makeSsrSerovalPlugin(adapter, { didRun: false })\n return plugin\n })\n\n const stream = Solid.renderToStream(\n () => (\n <>\n {docType}\n {children()}\n </>\n ),\n {\n nonce: router.options.ssr?.nonce,\n plugins: serovalPlugins,\n } as any,\n )\n\n if (isbot(request.headers.get('User-Agent'))) {\n await stream\n }\n stream.pipeTo(writable)\n\n const responseStream = transformReadableStreamWithRouter(\n router,\n readable as unknown as ReadableStream,\n )\n return new Response(responseStream as any, {\n status: router.state.statusCode,\n headers: responseHeaders,\n })\n}\n"],"
|
|
1
|
+
{"version":3,"file":"renderRouterToStream.js","names":["Solid","isbot","transformReadableStreamWithRouter","makeSsrSerovalPlugin","JSXElement","ReadableStream","AnyRouter","renderRouterToStream","request","router","responseHeaders","children","Request","Headers","writable","readable","TransformStream","docType","ssr","serializationAdapters","options","serovalPlugins","map","adapter","plugin","didRun","stream","renderToStream","_$memo","nonce","plugins","headers","get","pipeTo","responseStream","Response","status","state","statusCode"],"sources":["../../../src/ssr/renderRouterToStream.tsx"],"sourcesContent":["import * as Solid from 'solid-js/web'\nimport { isbot } from 'isbot'\nimport { transformReadableStreamWithRouter } from '@tanstack/router-core/ssr/server'\nimport { makeSsrSerovalPlugin } from '@tanstack/router-core'\nimport type { JSXElement } from 'solid-js'\nimport type { ReadableStream } from 'node:stream/web'\nimport type { AnyRouter } from '@tanstack/router-core'\n\nexport const renderRouterToStream = async ({\n request,\n router,\n responseHeaders,\n children,\n}: {\n request: Request\n router: AnyRouter\n responseHeaders: Headers\n children: () => JSXElement\n}) => {\n const { writable, readable } = new TransformStream()\n\n const docType = Solid.ssr('<!DOCTYPE html>')\n\n const serializationAdapters =\n (router.options as any)?.serializationAdapters ||\n (router.options.ssr as any)?.serializationAdapters\n const serovalPlugins = serializationAdapters?.map((adapter: any) => {\n const plugin = makeSsrSerovalPlugin(adapter, { didRun: false })\n return plugin\n })\n\n const stream = Solid.renderToStream(\n () => (\n <>\n {docType}\n {children()}\n </>\n ),\n {\n nonce: router.options.ssr?.nonce,\n plugins: serovalPlugins,\n } as any,\n )\n\n if (isbot(request.headers.get('User-Agent'))) {\n await stream\n }\n stream.pipeTo(writable)\n\n const responseStream = transformReadableStreamWithRouter(\n router,\n readable as unknown as ReadableStream,\n )\n return new Response(responseStream as any, {\n status: router.state.statusCode,\n headers: responseHeaders,\n })\n}\n"],"mappings":";;;;;;AAQA,IAAaO,uBAAuB,OAAO,EACzCC,SACAC,QACAC,iBACAC,eAMI;CACJ,MAAM,EAAEG,UAAUC,aAAa,IAAIC,iBAAiB;CAEpD,MAAMC,UAAUjB,MAAMkB,IAAI,kBAAkB;CAK5C,MAAMG,kBAFHZ,OAAOW,SAAiBD,yBACxBV,OAAOW,QAAQF,KAAaC,wBACeG,KAAKC,YAAiB;AAElE,SADepB,qBAAqBoB,SAAS,EAAEE,QAAQ,OAAO,CAAC;GAE/D;CAEF,MAAMC,SAAS1B,MAAM2B,qBACnB,CAEKV,SAAOW,KACPjB,SAAQ,CAEZ,EACD;EACEkB,OAAOpB,OAAOW,QAAQF,KAAKW;EAC3BC,SAAST;EACV,CACF;AAED,KAAIpB,MAAMO,QAAQuB,QAAQC,IAAI,aAAa,CAAC,CAC1C,OAAMN;AAERA,QAAOO,OAAOnB,SAAS;CAEvB,MAAMoB,iBAAiBhC,kCACrBO,QACAM,SACD;AACD,QAAO,IAAIoB,SAASD,gBAAuB;EACzCE,QAAQ3B,OAAO4B,MAAMC;EACrBP,SAASrB;EACV,CAAC"}
|
|
@@ -1,42 +1,33 @@
|
|
|
1
|
-
import * as Solid from "solid-js/web";
|
|
2
1
|
import { makeSsrSerovalPlugin } from "@tanstack/router-core";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
console.error("Render to string error:", error);
|
|
31
|
-
return new Response("Internal Server Error", {
|
|
32
|
-
status: 500,
|
|
33
|
-
headers: responseHeaders
|
|
34
|
-
});
|
|
35
|
-
} finally {
|
|
36
|
-
router.serverSsr?.cleanup();
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
export {
|
|
40
|
-
renderRouterToString
|
|
2
|
+
import * as Solid from "solid-js/web";
|
|
3
|
+
//#region src/ssr/renderRouterToString.tsx
|
|
4
|
+
var renderRouterToString = async ({ router, responseHeaders, children }) => {
|
|
5
|
+
try {
|
|
6
|
+
const serovalPlugins = (router.options?.serializationAdapters || router.options.ssr?.serializationAdapters)?.map((adapter) => {
|
|
7
|
+
return makeSsrSerovalPlugin(adapter, { didRun: false });
|
|
8
|
+
});
|
|
9
|
+
let html = Solid.renderToString(children, {
|
|
10
|
+
nonce: router.options.ssr?.nonce,
|
|
11
|
+
plugins: serovalPlugins
|
|
12
|
+
});
|
|
13
|
+
router.serverSsr.setRenderFinished();
|
|
14
|
+
const injectedHtml = router.serverSsr.takeBufferedHtml();
|
|
15
|
+
if (injectedHtml) html = html.replace(`</body>`, () => `${injectedHtml}</body>`);
|
|
16
|
+
return new Response(`<!DOCTYPE html>${html}`, {
|
|
17
|
+
status: router.state.statusCode,
|
|
18
|
+
headers: responseHeaders
|
|
19
|
+
});
|
|
20
|
+
} catch (error) {
|
|
21
|
+
console.error("Render to string error:", error);
|
|
22
|
+
return new Response("Internal Server Error", {
|
|
23
|
+
status: 500,
|
|
24
|
+
headers: responseHeaders
|
|
25
|
+
});
|
|
26
|
+
} finally {
|
|
27
|
+
router.serverSsr?.cleanup();
|
|
28
|
+
}
|
|
41
29
|
};
|
|
42
|
-
//#
|
|
30
|
+
//#endregion
|
|
31
|
+
export { renderRouterToString };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=renderRouterToString.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderRouterToString.js","sources":["../../../src/ssr/renderRouterToString.tsx"],"sourcesContent":["import * as Solid from 'solid-js/web'\nimport { makeSsrSerovalPlugin } from '@tanstack/router-core'\nimport type { AnyRouter } from '@tanstack/router-core'\nimport type { JSXElement } from 'solid-js'\n\nexport const renderRouterToString = async ({\n router,\n responseHeaders,\n children,\n}: {\n router: AnyRouter\n responseHeaders: Headers\n children: () => JSXElement\n}) => {\n try {\n const serializationAdapters =\n (router.options as any)?.serializationAdapters ||\n (router.options.ssr as any)?.serializationAdapters\n const serovalPlugins = serializationAdapters?.map((adapter: any) => {\n const plugin = makeSsrSerovalPlugin(adapter, { didRun: false })\n return plugin\n })\n\n let html = Solid.renderToString(children, {\n nonce: router.options.ssr?.nonce,\n plugins: serovalPlugins,\n } as any)\n router.serverSsr!.setRenderFinished()\n\n const injectedHtml = router.serverSsr!.takeBufferedHtml()\n if (injectedHtml) {\n html = html.replace(`</body>`, () => `${injectedHtml}</body>`)\n }\n return new Response(`<!DOCTYPE html>${html}`, {\n status: router.state.statusCode,\n headers: responseHeaders,\n })\n } catch (error) {\n console.error('Render to string error:', error)\n return new Response('Internal Server Error', {\n status: 500,\n headers: responseHeaders,\n })\n } finally {\n router.serverSsr?.cleanup()\n }\n}\n"],"
|
|
1
|
+
{"version":3,"file":"renderRouterToString.js","names":["Solid","makeSsrSerovalPlugin","AnyRouter","JSXElement","renderRouterToString","router","responseHeaders","children","Headers","serializationAdapters","options","ssr","serovalPlugins","map","adapter","plugin","didRun","html","renderToString","nonce","plugins","serverSsr","setRenderFinished","injectedHtml","takeBufferedHtml","replace","Response","status","state","statusCode","headers","error","console","cleanup"],"sources":["../../../src/ssr/renderRouterToString.tsx"],"sourcesContent":["import * as Solid from 'solid-js/web'\nimport { makeSsrSerovalPlugin } from '@tanstack/router-core'\nimport type { AnyRouter } from '@tanstack/router-core'\nimport type { JSXElement } from 'solid-js'\n\nexport const renderRouterToString = async ({\n router,\n responseHeaders,\n children,\n}: {\n router: AnyRouter\n responseHeaders: Headers\n children: () => JSXElement\n}) => {\n try {\n const serializationAdapters =\n (router.options as any)?.serializationAdapters ||\n (router.options.ssr as any)?.serializationAdapters\n const serovalPlugins = serializationAdapters?.map((adapter: any) => {\n const plugin = makeSsrSerovalPlugin(adapter, { didRun: false })\n return plugin\n })\n\n let html = Solid.renderToString(children, {\n nonce: router.options.ssr?.nonce,\n plugins: serovalPlugins,\n } as any)\n router.serverSsr!.setRenderFinished()\n\n const injectedHtml = router.serverSsr!.takeBufferedHtml()\n if (injectedHtml) {\n html = html.replace(`</body>`, () => `${injectedHtml}</body>`)\n }\n return new Response(`<!DOCTYPE html>${html}`, {\n status: router.state.statusCode,\n headers: responseHeaders,\n })\n } catch (error) {\n console.error('Render to string error:', error)\n return new Response('Internal Server Error', {\n status: 500,\n headers: responseHeaders,\n })\n } finally {\n router.serverSsr?.cleanup()\n }\n}\n"],"mappings":";;;AAKA,IAAaI,uBAAuB,OAAO,EACzCC,QACAC,iBACAC,eAKI;AACJ,KAAI;EAIF,MAAMK,kBAFHP,OAAOK,SAAiBD,yBACxBJ,OAAOK,QAAQC,KAAaF,wBACeI,KAAKC,YAAiB;AAElE,UADeb,qBAAqBa,SAAS,EAAEE,QAAQ,OAAO,CAAC;IAE/D;EAEF,IAAIC,OAAOjB,MAAMkB,eAAeX,UAAU;GACxCY,OAAOd,OAAOK,QAAQC,KAAKQ;GAC3BC,SAASR;GACV,CAAQ;AACTP,SAAOgB,UAAWC,mBAAmB;EAErC,MAAMC,eAAelB,OAAOgB,UAAWG,kBAAkB;AACzD,MAAID,aACFN,QAAOA,KAAKQ,QAAQ,iBAAiB,GAAGF,aAAY,SAAU;AAEhE,SAAO,IAAIG,SAAS,kBAAkBT,QAAQ;GAC5CU,QAAQtB,OAAOuB,MAAMC;GACrBC,SAASxB;GACV,CAAC;UACKyB,OAAO;AACdC,UAAQD,MAAM,2BAA2BA,MAAM;AAC/C,SAAO,IAAIL,SAAS,yBAAyB;GAC3CC,QAAQ;GACRG,SAASxB;GACV,CAAC;WACM;AACRD,SAAOgB,WAAWY,SAAS"}
|
package/dist/esm/ssr/server.js
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import { RouterServer } from "./RouterServer.js";
|
|
2
|
+
import { renderRouterToString } from "./renderRouterToString.js";
|
|
2
3
|
import { defaultRenderHandler } from "./defaultRenderHandler.js";
|
|
3
|
-
import { defaultStreamHandler } from "./defaultStreamHandler.js";
|
|
4
4
|
import { renderRouterToStream } from "./renderRouterToStream.js";
|
|
5
|
-
import {
|
|
5
|
+
import { defaultStreamHandler } from "./defaultStreamHandler.js";
|
|
6
6
|
export * from "@tanstack/router-core/ssr/server";
|
|
7
|
-
export {
|
|
8
|
-
RouterServer,
|
|
9
|
-
defaultRenderHandler,
|
|
10
|
-
defaultStreamHandler,
|
|
11
|
-
renderRouterToStream,
|
|
12
|
-
renderRouterToString
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=server.js.map
|
|
7
|
+
export { RouterServer, defaultRenderHandler, defaultStreamHandler, renderRouterToStream, renderRouterToString };
|
package/dist/esm/useBlocker.d.ts
CHANGED
|
@@ -51,11 +51,14 @@ export declare function useBlocker(blockerFnOrOpts?: LegacyBlockerOpts): Solid.A
|
|
|
51
51
|
* @deprecated Use the UseBlockerOpts object syntax instead
|
|
52
52
|
*/
|
|
53
53
|
export declare function useBlocker(blockerFn?: LegacyBlockerFn, condition?: boolean | any): Solid.Accessor<BlockerResolver>;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
interface BlockComponent {
|
|
55
|
+
<TRouter extends AnyRouter = RegisteredRouter, TWithResolver extends boolean = boolean>(opts: PromptProps<TRouter, TWithResolver>): SolidNode;
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated Use the UseBlockerOpts property instead
|
|
58
|
+
*/
|
|
59
|
+
(opts: LegacyPromptProps): SolidNode;
|
|
60
|
+
}
|
|
61
|
+
export declare const Block: BlockComponent;
|
|
59
62
|
type LegacyPromptProps = {
|
|
60
63
|
blockerFn?: LegacyBlockerFn;
|
|
61
64
|
condition?: boolean | any;
|