@bleedingdev/modern-js-runtime 3.2.0-ultramodern.120 → 3.2.0-ultramodern.121

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.
Files changed (203) hide show
  1. package/dist/cjs/boundary-debugger/index.js +4 -0
  2. package/dist/cjs/cli/index.js +11 -0
  3. package/dist/cjs/{router/runtime/tanstack/rsc/ClientSlot.js → core/context/extensions.js} +33 -21
  4. package/dist/cjs/{router/runtime/tanstack/rsc/SlotContext.js → core/context/helmetContext.js} +16 -20
  5. package/dist/cjs/core/context/index.js +65 -0
  6. package/dist/cjs/core/react/wrapper.js +6 -4
  7. package/dist/cjs/core/server/helmet.js +2 -1
  8. package/dist/cjs/core/server/requestHandler.js +42 -29
  9. package/dist/cjs/core/server/routerCleanup.js +110 -0
  10. package/dist/cjs/core/server/scriptOrder.js +75 -4
  11. package/dist/cjs/core/server/stream/afterTemplate.js +6 -18
  12. package/dist/cjs/core/server/stream/deferredScript.js +4 -1
  13. package/dist/cjs/core/server/string/index.js +1 -7
  14. package/dist/cjs/core/server/string/loadable.js +13 -40
  15. package/dist/cjs/core/server/string/ssrData.js +1 -1
  16. package/dist/cjs/core/server/utils.js +31 -8
  17. package/dist/cjs/exports/head.js +135 -74
  18. package/dist/cjs/exports/tanstack-router.js +36 -305
  19. package/dist/cjs/module-federation/index.js +178 -0
  20. package/dist/cjs/router/cli/code/index.js +1 -47
  21. package/dist/cjs/router/cli/code/templates.js +1 -14
  22. package/dist/cjs/router/cli/handler.js +1 -1
  23. package/dist/cjs/router/cli/index.js +2 -23
  24. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +16 -4
  25. package/dist/cjs/router/runtime/PrefetchLink.js +2 -3
  26. package/dist/cjs/router/runtime/internal.js +20 -13
  27. package/dist/cjs/router/runtime/lifecycle.js +37 -22
  28. package/dist/cjs/router/runtime/plugin.js +2 -9
  29. package/dist/cjs/router/runtime/plugin.node.js +2 -7
  30. package/dist/cjs/router/runtime/provider.js +107 -0
  31. package/dist/cjs/router/runtime/utils.js +35 -9
  32. package/dist/esm/boundary-debugger/index.mjs +4 -0
  33. package/dist/esm/cli/index.mjs +4 -2
  34. package/dist/esm/core/context/extensions.mjs +28 -0
  35. package/dist/esm/core/context/helmetContext.mjs +13 -0
  36. package/dist/esm/core/context/index.mjs +5 -0
  37. package/dist/esm/core/react/wrapper.mjs +6 -4
  38. package/dist/esm/core/server/helmet.mjs +2 -1
  39. package/dist/esm/core/server/requestHandler.mjs +43 -30
  40. package/dist/esm/core/server/routerCleanup.mjs +66 -0
  41. package/dist/esm/core/server/scriptOrder.mjs +60 -1
  42. package/dist/esm/core/server/stream/afterTemplate.mjs +8 -20
  43. package/dist/esm/core/server/stream/deferredScript.mjs +4 -1
  44. package/dist/esm/core/server/string/index.mjs +3 -9
  45. package/dist/esm/core/server/string/loadable.mjs +11 -38
  46. package/dist/esm/core/server/string/ssrData.mjs +2 -2
  47. package/dist/esm/core/server/utils.mjs +31 -8
  48. package/dist/esm/exports/head.mjs +135 -74
  49. package/dist/esm/exports/tanstack-router.mjs +30 -4
  50. package/dist/esm/module-federation/index.mjs +109 -0
  51. package/dist/esm/router/cli/code/index.mjs +1 -47
  52. package/dist/esm/router/cli/code/templates.mjs +1 -14
  53. package/dist/esm/router/cli/handler.mjs +1 -1
  54. package/dist/esm/router/cli/index.mjs +3 -24
  55. package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +16 -4
  56. package/dist/esm/router/runtime/PrefetchLink.mjs +2 -3
  57. package/dist/esm/router/runtime/internal.mjs +16 -15
  58. package/dist/esm/router/runtime/lifecycle.mjs +22 -13
  59. package/dist/esm/router/runtime/plugin.mjs +4 -11
  60. package/dist/esm/router/runtime/plugin.node.mjs +4 -9
  61. package/dist/esm/router/runtime/provider.mjs +57 -0
  62. package/dist/esm/router/runtime/utils.mjs +35 -9
  63. package/dist/esm-node/boundary-debugger/index.mjs +4 -0
  64. package/dist/esm-node/cli/index.mjs +4 -2
  65. package/dist/esm-node/core/context/extensions.mjs +29 -0
  66. package/dist/esm-node/core/context/helmetContext.mjs +14 -0
  67. package/dist/esm-node/core/context/index.mjs +5 -0
  68. package/dist/esm-node/core/react/wrapper.mjs +6 -4
  69. package/dist/esm-node/core/server/helmet.mjs +2 -1
  70. package/dist/esm-node/core/server/requestHandler.mjs +43 -30
  71. package/dist/esm-node/core/server/routerCleanup.mjs +67 -0
  72. package/dist/esm-node/core/server/scriptOrder.mjs +60 -1
  73. package/dist/esm-node/core/server/stream/afterTemplate.mjs +8 -20
  74. package/dist/esm-node/core/server/stream/deferredScript.mjs +4 -1
  75. package/dist/esm-node/core/server/string/index.mjs +3 -9
  76. package/dist/esm-node/core/server/string/loadable.mjs +11 -38
  77. package/dist/esm-node/core/server/string/ssrData.mjs +2 -2
  78. package/dist/esm-node/core/server/utils.mjs +31 -8
  79. package/dist/esm-node/exports/head.mjs +135 -74
  80. package/dist/esm-node/exports/tanstack-router.mjs +30 -4
  81. package/dist/esm-node/module-federation/index.mjs +110 -0
  82. package/dist/esm-node/router/cli/code/index.mjs +1 -47
  83. package/dist/esm-node/router/cli/code/templates.mjs +1 -14
  84. package/dist/esm-node/router/cli/handler.mjs +1 -1
  85. package/dist/esm-node/router/cli/index.mjs +3 -24
  86. package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +16 -4
  87. package/dist/esm-node/router/runtime/PrefetchLink.mjs +2 -3
  88. package/dist/esm-node/router/runtime/internal.mjs +16 -15
  89. package/dist/esm-node/router/runtime/lifecycle.mjs +22 -13
  90. package/dist/esm-node/router/runtime/plugin.mjs +4 -11
  91. package/dist/esm-node/router/runtime/plugin.node.mjs +4 -9
  92. package/dist/esm-node/router/runtime/provider.mjs +58 -0
  93. package/dist/esm-node/router/runtime/utils.mjs +35 -9
  94. package/dist/types/cli/index.d.ts +3 -1
  95. package/dist/types/core/context/extensions.d.ts +37 -0
  96. package/dist/types/core/context/helmetContext.d.ts +10 -0
  97. package/dist/types/core/context/index.d.ts +6 -0
  98. package/dist/types/core/context/runtime.d.ts +1 -11
  99. package/dist/types/core/server/routerCleanup.d.ts +28 -0
  100. package/dist/types/core/server/scriptOrder.d.ts +24 -0
  101. package/dist/types/core/server/string/loadable.d.ts +1 -7
  102. package/dist/types/core/server/utils.d.ts +1 -0
  103. package/dist/types/exports/tanstack-router.d.ts +88 -7
  104. package/dist/types/module-federation/index.d.ts +65 -0
  105. package/dist/types/router/cli/code/index.d.ts +1 -3
  106. package/dist/types/router/cli/handler.d.ts +0 -3
  107. package/dist/types/router/runtime/internal.d.ts +1 -0
  108. package/dist/types/router/runtime/lifecycle.d.ts +2 -0
  109. package/dist/types/router/runtime/plugin.d.ts +1 -1
  110. package/dist/types/router/runtime/plugin.node.d.ts +1 -1
  111. package/dist/types/router/runtime/provider.d.ts +61 -0
  112. package/package.json +15 -11
  113. package/rstest.config.mts +2 -4
  114. package/dist/cjs/router/cli/code/tanstackTypes.js +0 -447
  115. package/dist/cjs/router/runtime/tanstack/basepathRewrite.js +0 -66
  116. package/dist/cjs/router/runtime/tanstack/dataMutation.js +0 -349
  117. package/dist/cjs/router/runtime/tanstack/hydrationBoundary.js +0 -48
  118. package/dist/cjs/router/runtime/tanstack/outlet.js +0 -58
  119. package/dist/cjs/router/runtime/tanstack/plugin.js +0 -342
  120. package/dist/cjs/router/runtime/tanstack/plugin.node.js +0 -272
  121. package/dist/cjs/router/runtime/tanstack/prefetchLink.js +0 -59
  122. package/dist/cjs/router/runtime/tanstack/routeTree.js +0 -525
  123. package/dist/cjs/router/runtime/tanstack/rsc/CompositeComponent.js +0 -79
  124. package/dist/cjs/router/runtime/tanstack/rsc/ReplayableStream.js +0 -146
  125. package/dist/cjs/router/runtime/tanstack/rsc/RscNodeRenderer.js +0 -69
  126. package/dist/cjs/router/runtime/tanstack/rsc/client.js +0 -97
  127. package/dist/cjs/router/runtime/tanstack/rsc/createRscProxy.js +0 -145
  128. package/dist/cjs/router/runtime/tanstack/rsc/index.js +0 -46
  129. package/dist/cjs/router/runtime/tanstack/rsc/server.js +0 -250
  130. package/dist/cjs/router/runtime/tanstack/rsc/slotUsageSanitizer.js +0 -69
  131. package/dist/cjs/router/runtime/tanstack/rsc/symbols.js +0 -77
  132. package/dist/cjs/ssr/index.node.js +0 -125
  133. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -88
  134. package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -200
  135. package/dist/cjs/ssr/serverRender/types.js +0 -40
  136. package/dist/esm/router/cli/code/tanstackTypes.mjs +0 -396
  137. package/dist/esm/router/runtime/tanstack/basepathRewrite.mjs +0 -28
  138. package/dist/esm/router/runtime/tanstack/dataMutation.mjs +0 -305
  139. package/dist/esm/router/runtime/tanstack/hydrationBoundary.mjs +0 -10
  140. package/dist/esm/router/runtime/tanstack/outlet.mjs +0 -17
  141. package/dist/esm/router/runtime/tanstack/plugin.mjs +0 -304
  142. package/dist/esm/router/runtime/tanstack/plugin.node.mjs +0 -234
  143. package/dist/esm/router/runtime/tanstack/prefetchLink.mjs +0 -18
  144. package/dist/esm/router/runtime/tanstack/routeTree.mjs +0 -481
  145. package/dist/esm/router/runtime/tanstack/rsc/ClientSlot.mjs +0 -19
  146. package/dist/esm/router/runtime/tanstack/rsc/CompositeComponent.mjs +0 -41
  147. package/dist/esm/router/runtime/tanstack/rsc/ReplayableStream.mjs +0 -104
  148. package/dist/esm/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +0 -31
  149. package/dist/esm/router/runtime/tanstack/rsc/SlotContext.mjs +0 -17
  150. package/dist/esm/router/runtime/tanstack/rsc/client.mjs +0 -53
  151. package/dist/esm/router/runtime/tanstack/rsc/createRscProxy.mjs +0 -107
  152. package/dist/esm/router/runtime/tanstack/rsc/index.mjs +0 -1
  153. package/dist/esm/router/runtime/tanstack/rsc/server.mjs +0 -200
  154. package/dist/esm/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +0 -31
  155. package/dist/esm/router/runtime/tanstack/rsc/symbols.mjs +0 -17
  156. package/dist/esm/ssr/index.node.mjs +0 -44
  157. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.mjs +0 -50
  158. package/dist/esm/ssr/serverRender/renderToString/entry.mjs +0 -151
  159. package/dist/esm/ssr/serverRender/types.mjs +0 -1
  160. package/dist/esm-node/router/cli/code/tanstackTypes.mjs +0 -397
  161. package/dist/esm-node/router/runtime/tanstack/basepathRewrite.mjs +0 -29
  162. package/dist/esm-node/router/runtime/tanstack/dataMutation.mjs +0 -306
  163. package/dist/esm-node/router/runtime/tanstack/hydrationBoundary.mjs +0 -11
  164. package/dist/esm-node/router/runtime/tanstack/outlet.mjs +0 -18
  165. package/dist/esm-node/router/runtime/tanstack/plugin.mjs +0 -305
  166. package/dist/esm-node/router/runtime/tanstack/plugin.node.mjs +0 -235
  167. package/dist/esm-node/router/runtime/tanstack/prefetchLink.mjs +0 -19
  168. package/dist/esm-node/router/runtime/tanstack/routeTree.mjs +0 -482
  169. package/dist/esm-node/router/runtime/tanstack/rsc/ClientSlot.mjs +0 -20
  170. package/dist/esm-node/router/runtime/tanstack/rsc/CompositeComponent.mjs +0 -42
  171. package/dist/esm-node/router/runtime/tanstack/rsc/ReplayableStream.mjs +0 -105
  172. package/dist/esm-node/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +0 -32
  173. package/dist/esm-node/router/runtime/tanstack/rsc/SlotContext.mjs +0 -18
  174. package/dist/esm-node/router/runtime/tanstack/rsc/client.mjs +0 -54
  175. package/dist/esm-node/router/runtime/tanstack/rsc/createRscProxy.mjs +0 -108
  176. package/dist/esm-node/router/runtime/tanstack/rsc/index.mjs +0 -2
  177. package/dist/esm-node/router/runtime/tanstack/rsc/server.mjs +0 -201
  178. package/dist/esm-node/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +0 -32
  179. package/dist/esm-node/router/runtime/tanstack/rsc/symbols.mjs +0 -18
  180. package/dist/esm-node/ssr/index.node.mjs +0 -45
  181. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.mjs +0 -51
  182. package/dist/esm-node/ssr/serverRender/renderToString/entry.mjs +0 -152
  183. package/dist/esm-node/ssr/serverRender/types.mjs +0 -2
  184. package/dist/types/router/cli/code/tanstackTypes.d.ts +0 -10
  185. package/dist/types/router/runtime/tanstack/basepathRewrite.d.ts +0 -8
  186. package/dist/types/router/runtime/tanstack/dataMutation.d.ts +0 -29
  187. package/dist/types/router/runtime/tanstack/hydrationBoundary.d.ts +0 -2
  188. package/dist/types/router/runtime/tanstack/outlet.d.ts +0 -2
  189. package/dist/types/router/runtime/tanstack/plugin.d.ts +0 -6
  190. package/dist/types/router/runtime/tanstack/plugin.node.d.ts +0 -6
  191. package/dist/types/router/runtime/tanstack/prefetchLink.d.ts +0 -11
  192. package/dist/types/router/runtime/tanstack/routeTree.d.ts +0 -8
  193. package/dist/types/router/runtime/tanstack/rsc/ClientSlot.d.ts +0 -5
  194. package/dist/types/router/runtime/tanstack/rsc/CompositeComponent.d.ts +0 -3
  195. package/dist/types/router/runtime/tanstack/rsc/ReplayableStream.d.ts +0 -24
  196. package/dist/types/router/runtime/tanstack/rsc/RscNodeRenderer.d.ts +0 -5
  197. package/dist/types/router/runtime/tanstack/rsc/SlotContext.d.ts +0 -11
  198. package/dist/types/router/runtime/tanstack/rsc/client.d.ts +0 -11
  199. package/dist/types/router/runtime/tanstack/rsc/createRscProxy.d.ts +0 -7
  200. package/dist/types/router/runtime/tanstack/rsc/index.d.ts +0 -2
  201. package/dist/types/router/runtime/tanstack/rsc/server.d.ts +0 -14
  202. package/dist/types/router/runtime/tanstack/rsc/slotUsageSanitizer.d.ts +0 -2
  203. package/dist/types/router/runtime/tanstack/rsc/symbols.d.ts +0 -46
@@ -1,234 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { merge } from "@modern-js/runtime-utils/merge";
3
- import { createRequestContext } from "@modern-js/runtime-utils/node";
4
- import { time } from "@modern-js/runtime-utils/time";
5
- import { LOADER_REPORTER_NAME } from "@modern-js/utils/universal/constants";
6
- import { RouterProvider, createMemoryHistory, createRouter } from "@tanstack/react-router";
7
- import { attachRouterServerSsrUtils } from "@tanstack/react-router/ssr/server";
8
- import { useContext } from "react";
9
- import { InternalRuntimeContext, getGlobalEnableRsc, getGlobalLayoutApp, getGlobalRoutes } from "../../../core/context/index.mjs";
10
- import { applyRouterServerPrepareResult, createRouterServerSnapshot } from "../lifecycle.mjs";
11
- import { createRouteObjectsFromConfig, urlJoin } from "../utils.mjs";
12
- import { createModernBasepathRewrite } from "./basepathRewrite.mjs";
13
- import { wrapTanstackSsrHydrationBoundary } from "./hydrationBoundary.mjs";
14
- import { createRouteTreeFromRouteObjects, getModernRouteIdsFromMatches } from "./routeTree.mjs";
15
- function isPreloadableRouteComponent(component) {
16
- if (!component || 'function' != typeof component) return false;
17
- const preloadable = component;
18
- return 'function' == typeof preloadable.load || 'function' == typeof preloadable.preload;
19
- }
20
- async function preloadRouteComponent(component) {
21
- if (!isPreloadableRouteComponent(component)) return;
22
- if ('function' == typeof component.load) return void await component.load({});
23
- await component.preload?.({});
24
- }
25
- async function preloadMatchedRouteComponents(tanstackRouter) {
26
- const matches = Array.isArray(tanstackRouter.state.matches) ? tanstackRouter.state.matches : [];
27
- const routesById = tanstackRouter.routesById || {};
28
- await Promise.all(matches.map(async (match)=>{
29
- const routeId = 'string' == typeof match.routeId ? match.routeId : 'string' == typeof match.route?.id ? match.route.id : void 0;
30
- const route = routeId ? routesById[routeId] : match.route;
31
- const options = route?.options;
32
- if (!options) return;
33
- await Promise.all([
34
- preloadRouteComponent(options.component),
35
- preloadRouteComponent(options.pendingComponent),
36
- preloadRouteComponent(options.errorComponent),
37
- preloadRouteComponent(options.notFoundComponent)
38
- ]);
39
- }));
40
- }
41
- function htmlEscapeAttr(value) {
42
- return value.replace(/&/g, '&').replace(/"/g, '"');
43
- }
44
- function routerManagedTagToHtml(tag) {
45
- if (!tag || 'object' != typeof tag) return '';
46
- const managedTag = tag;
47
- if (!managedTag || "script" !== managedTag.tag) return '';
48
- const attrs = managedTag.attrs || {};
49
- const attrsStr = Object.entries(attrs).filter(([, v])=>null != v && false !== v).map(([k, v])=>{
50
- const name = 'className' === k ? 'class' : k;
51
- if (true === v) return name;
52
- return `${name}="${htmlEscapeAttr(String(v))}"`;
53
- }).join(' ');
54
- const open = attrsStr.length ? `<script ${attrsStr}>` : "<script>";
55
- const children = 'string' == typeof managedTag.children ? managedTag.children : '';
56
- return `${open}${children}</script>`;
57
- }
58
- function routerManagedTagsToHtml(tags) {
59
- const normalizedTags = Array.isArray(tags) ? tags : [
60
- tags
61
- ];
62
- return normalizedTags.map(routerManagedTagToHtml).filter(Boolean);
63
- }
64
- function createGetSsrHref(request) {
65
- const url = new URL(request.url);
66
- return `${url.pathname}${url.search}${url.hash}`;
67
- }
68
- function stripSyntheticNotFoundRoute(routes) {
69
- return routes.filter((route)=>!('*' === route.path && !route.id && !route.loader)).map((route)=>{
70
- if (!route.children?.length) return route;
71
- return {
72
- ...route,
73
- children: stripSyntheticNotFoundRoute(route.children)
74
- };
75
- });
76
- }
77
- function collectRouterErrors(tanstackRouter) {
78
- const state = tanstackRouter.state;
79
- const matches = Array.isArray(state.matches) ? state.matches : [];
80
- const errors = matches.reduce((acc, match)=>{
81
- if (!match.error) return acc;
82
- const routeId = 'string' == typeof match.routeId ? match.routeId : 'string' == typeof match.route?.id ? match.route.id : `match-${Object.keys(acc).length}`;
83
- acc[routeId] = match.error;
84
- return acc;
85
- }, {});
86
- return Object.keys(errors).length > 0 ? errors : void 0;
87
- }
88
- const tanstackRouterPlugin = (userConfig = {})=>({
89
- name: '@modern-js/plugin-router-tanstack',
90
- setup: (api)=>{
91
- api.onBeforeRender(async (context, interrupt)=>{
92
- const pluginConfig = api.getRuntimeConfig();
93
- const mergedConfig = merge(pluginConfig.router || {}, userConfig);
94
- const serializationAdapters = getGlobalEnableRsc() ? (await import("./rsc/server.mjs")).getTanstackRscSerializationAdapters() : void 0;
95
- const { basename = '', routesConfig, createRoutes } = mergedConfig;
96
- const finalRouteConfig = {
97
- routes: getGlobalRoutes(),
98
- globalApp: getGlobalLayoutApp(),
99
- ...routesConfig
100
- };
101
- if (!finalRouteConfig.routes && !createRoutes) return;
102
- const hooks = api.getHooks();
103
- await hooks.onBeforeCreateRoutes.call(context);
104
- const routeObjects = createRoutes ? createRoutes() : createRouteObjectsFromConfig({
105
- routesConfig: finalRouteConfig,
106
- ssrMode: context.ssrContext?.mode
107
- }) || [];
108
- const normalizedRouteObjects = createRoutes ? routeObjects : stripSyntheticNotFoundRoute(routeObjects);
109
- const modifiedRouteObjects = hooks.modifyRoutes.call(normalizedRouteObjects);
110
- if (!modifiedRouteObjects.length) return;
111
- const { request, nonce, baseUrl, loaderFailureMode = 'errorBoundary' } = context.ssrContext;
112
- const _basename = '/' === baseUrl ? urlJoin(baseUrl, basename || '') : baseUrl;
113
- const initialHref = createGetSsrHref(request.raw);
114
- const requestContext = createRequestContext(context.ssrContext?.loaderContext);
115
- const controller = new AbortController();
116
- const ssrRequest = new Request(request.raw.url, {
117
- method: 'GET',
118
- headers: request.raw.headers,
119
- signal: controller.signal
120
- });
121
- const routerContext = {
122
- request: ssrRequest,
123
- requestContext
124
- };
125
- const routeTree = createRouteTreeFromRouteObjects(modifiedRouteObjects);
126
- const history = createMemoryHistory({
127
- initialEntries: [
128
- initialHref
129
- ]
130
- });
131
- const rewrite = createModernBasepathRewrite(_basename);
132
- const routerLifecycleContext = {
133
- framework: 'tanstack',
134
- phase: 'ssr-prepare',
135
- routes: modifiedRouteObjects,
136
- runtimeContext: context,
137
- basename: _basename
138
- };
139
- hooks.onBeforeCreateRouter.call(routerLifecycleContext);
140
- const tanstackRouter = createRouter({
141
- routeTree,
142
- history,
143
- basepath: '/',
144
- rewrite,
145
- origin: new URL(request.raw.url).origin,
146
- ssr: {
147
- nonce
148
- },
149
- context: routerContext,
150
- ...serializationAdapters ? {
151
- serializationAdapters
152
- } : {}
153
- });
154
- const serverRouter = tanstackRouter;
155
- attachRouterServerSsrUtils({
156
- router: serverRouter,
157
- manifest: void 0
158
- });
159
- const end = time();
160
- try {
161
- await tanstackRouter.load({
162
- sync: true
163
- });
164
- } finally{
165
- const cost = end();
166
- context.ssrContext?.onTiming?.(LOADER_REPORTER_NAME, cost);
167
- }
168
- if (serverRouter.state.redirect) {
169
- const resolved = serverRouter.resolveRedirect ? serverRouter.resolveRedirect(serverRouter.state.redirect) : serverRouter.state.redirect;
170
- try {
171
- serverRouter.serverSsr?.cleanup?.();
172
- } catch {}
173
- return interrupt(resolved);
174
- }
175
- const routerErrors = collectRouterErrors(tanstackRouter);
176
- if (routerErrors && 'clientRender' === loaderFailureMode) {
177
- context.ssrContext?.response.status(200);
178
- try {
179
- serverRouter.serverSsr?.cleanup?.();
180
- } catch {}
181
- throw Object.values(routerErrors)[0];
182
- }
183
- await preloadMatchedRouteComponents(serverRouter);
184
- context.ssrContext?.response.status(tanstackRouter.state.statusCode);
185
- await serverRouter.serverSsr?.dehydrate?.();
186
- const ssrScriptTags = serverRouter.serverSsr?.takeBufferedScripts?.();
187
- const hydrationScripts = routerManagedTagsToHtml(ssrScriptTags);
188
- const matchedRouteIds = getModernRouteIdsFromMatches(serverRouter);
189
- const routerServerSnapshot = createRouterServerSnapshot({
190
- framework: 'tanstack',
191
- basename: _basename,
192
- statusCode: tanstackRouter.state.statusCode,
193
- errors: routerErrors,
194
- matchedRouteIds,
195
- hydrationScripts
196
- });
197
- const runtimeContext = applyRouterServerPrepareResult(context, {
198
- snapshot: routerServerSnapshot,
199
- cleanup: ()=>serverRouter.serverSsr?.cleanup?.(),
200
- state: {
201
- framework: 'tanstack',
202
- basename: _basename,
203
- instance: serverRouter,
204
- hydrationScripts,
205
- matchedRouteIds,
206
- serverSnapshot: routerServerSnapshot
207
- }
208
- });
209
- hooks.onAfterCreateRouter.call({
210
- ...routerLifecycleContext,
211
- router: serverRouter,
212
- serverSnapshot: routerServerSnapshot,
213
- runtimeContext
214
- });
215
- });
216
- api.wrapRoot((App)=>{
217
- const getRouteApp = ()=>(props)=>{
218
- const context = useContext(InternalRuntimeContext);
219
- const router = context.routerInstance ?? context.routerRuntime?.instance;
220
- if (!router) return App ? /*#__PURE__*/ jsx(App, {
221
- ...props
222
- }) : null;
223
- const routerWrapper = wrapTanstackSsrHydrationBoundary(/*#__PURE__*/ jsx(RouterProvider, {
224
- router: router
225
- }), true);
226
- return App ? /*#__PURE__*/ jsx(App, {
227
- children: routerWrapper
228
- }) : routerWrapper;
229
- };
230
- return getRouteApp();
231
- });
232
- }
233
- });
234
- export { tanstackRouterPlugin };
@@ -1,18 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Link } from "@tanstack/react-router";
3
- function resolvePreloadFromPrefetch(prefetch, preload) {
4
- if (void 0 !== preload) return preload;
5
- if ('none' === prefetch) return false;
6
- if ('intent' === prefetch || 'render' === prefetch || 'viewport' === prefetch) return prefetch;
7
- return 'viewport';
8
- }
9
- const LinkComponentImpl = (props)=>{
10
- const { prefetch, preload, ...rest } = props;
11
- return /*#__PURE__*/ jsx(Link, {
12
- ...rest,
13
- preload: resolvePreloadFromPrefetch(prefetch, preload)
14
- });
15
- };
16
- const prefetchLink_Link = LinkComponentImpl;
17
- const NavLink = LinkComponentImpl;
18
- export { NavLink, prefetchLink_Link as Link };