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

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