@bleedingdev/modern-js-runtime 3.2.0-ultramodern.1 → 3.2.0-ultramodern.100
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/boundary-debugger/index.js +299 -0
- package/dist/cjs/cli/ssr/index.js +5 -15
- package/dist/cjs/cli/template.server.js +1 -0
- package/dist/cjs/core/context/serverPayload/index.js +1 -1
- package/dist/cjs/core/plugin/index.js +3 -2
- package/dist/cjs/core/react/wrapper.js +9 -3
- package/dist/cjs/core/server/federatedCss.js +47 -0
- package/dist/cjs/core/server/helmet.js +8 -2
- package/dist/cjs/core/server/scriptOrder.js +59 -0
- package/dist/cjs/core/server/stream/afterTemplate.js +13 -5
- package/dist/cjs/core/server/stream/beforeTemplate.js +13 -20
- package/dist/cjs/core/server/stream/beforeTemplate.worker.js +98 -0
- package/dist/cjs/core/server/stream/createReadableStream.js +7 -2
- package/dist/cjs/core/server/stream/createReadableStream.worker.js +4 -2
- package/dist/cjs/core/server/stream/shared.js +3 -1
- package/dist/cjs/core/server/string/index.js +16 -9
- package/dist/cjs/core/server/string/loadable.js +74 -10
- package/dist/cjs/exports/head.js +196 -5
- package/dist/cjs/exports/loadable.js +34 -4
- package/dist/cjs/exports/tanstack-router.js +311 -54
- package/dist/cjs/router/cli/code/tanstackTypes.js +116 -51
- package/dist/cjs/router/cli/code/templates.js +15 -9
- package/dist/cjs/router/runtime/tanstack/hydrationBoundary.js +44 -0
- package/dist/cjs/router/runtime/tanstack/outlet.js +54 -0
- package/dist/cjs/router/runtime/tanstack/plugin.js +190 -88
- package/dist/cjs/router/runtime/tanstack/plugin.node.js +4 -14
- package/dist/cjs/router/runtime/tanstack/routeTree.js +64 -12
- package/dist/cjs/rsc/server.worker.js +58 -0
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +9 -8
- package/dist/esm/boundary-debugger/index.mjs +263 -0
- package/dist/esm/cli/ssr/index.mjs +5 -15
- package/dist/esm/cli/template.server.mjs +1 -0
- package/dist/esm/core/context/serverPayload/index.mjs +1 -1
- package/dist/esm/core/plugin/index.mjs +3 -2
- package/dist/esm/core/react/wrapper.mjs +9 -3
- package/dist/esm/core/server/federatedCss.mjs +13 -0
- package/dist/esm/core/server/helmet.mjs +5 -2
- package/dist/esm/core/server/scriptOrder.mjs +25 -0
- package/dist/esm/core/server/stream/afterTemplate.mjs +14 -6
- package/dist/esm/core/server/stream/beforeTemplate.mjs +14 -11
- package/dist/esm/core/server/stream/beforeTemplate.worker.mjs +64 -0
- package/dist/esm/core/server/stream/createReadableStream.mjs +7 -2
- package/dist/esm/core/server/stream/createReadableStream.worker.mjs +4 -2
- package/dist/esm/core/server/stream/shared.mjs +3 -1
- package/dist/esm/core/server/string/index.mjs +17 -9
- package/dist/esm/core/server/string/loadable.mjs +70 -9
- package/dist/esm/exports/head.mjs +189 -4
- package/dist/esm/exports/loadable.mjs +20 -3
- package/dist/esm/exports/tanstack-router.mjs +2 -1
- package/dist/esm/router/cli/code/tanstackTypes.mjs +116 -51
- package/dist/esm/router/cli/code/templates.mjs +15 -9
- package/dist/esm/router/runtime/tanstack/hydrationBoundary.mjs +10 -0
- package/dist/esm/router/runtime/tanstack/outlet.mjs +17 -0
- package/dist/esm/router/runtime/tanstack/plugin.mjs +193 -91
- package/dist/esm/router/runtime/tanstack/plugin.node.mjs +5 -15
- package/dist/esm/router/runtime/tanstack/routeTree.mjs +65 -13
- package/dist/esm/rsc/server.worker.mjs +1 -0
- package/dist/esm/ssr/serverRender/renderToString/entry.mjs +9 -6
- package/dist/esm-node/boundary-debugger/index.mjs +264 -0
- package/dist/esm-node/cli/ssr/index.mjs +5 -15
- package/dist/esm-node/cli/template.server.mjs +1 -0
- package/dist/esm-node/core/context/serverPayload/index.mjs +1 -1
- package/dist/esm-node/core/plugin/index.mjs +3 -2
- package/dist/esm-node/core/react/wrapper.mjs +9 -3
- package/dist/esm-node/core/server/federatedCss.mjs +14 -0
- package/dist/esm-node/core/server/helmet.mjs +5 -2
- package/dist/esm-node/core/server/scriptOrder.mjs +26 -0
- package/dist/esm-node/core/server/stream/afterTemplate.mjs +14 -6
- package/dist/esm-node/core/server/stream/beforeTemplate.mjs +14 -11
- package/dist/esm-node/core/server/stream/beforeTemplate.worker.mjs +65 -0
- package/dist/esm-node/core/server/stream/createReadableStream.mjs +7 -2
- package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +4 -2
- package/dist/esm-node/core/server/stream/shared.mjs +3 -1
- package/dist/esm-node/core/server/string/index.mjs +17 -9
- package/dist/esm-node/core/server/string/loadable.mjs +70 -9
- package/dist/esm-node/exports/head.mjs +189 -4
- package/dist/esm-node/exports/loadable.mjs +20 -3
- package/dist/esm-node/exports/tanstack-router.mjs +2 -1
- package/dist/esm-node/router/cli/code/tanstackTypes.mjs +116 -51
- package/dist/esm-node/router/cli/code/templates.mjs +15 -9
- package/dist/esm-node/router/runtime/tanstack/hydrationBoundary.mjs +11 -0
- package/dist/esm-node/router/runtime/tanstack/outlet.mjs +18 -0
- package/dist/esm-node/router/runtime/tanstack/plugin.mjs +193 -91
- package/dist/esm-node/router/runtime/tanstack/plugin.node.mjs +5 -15
- package/dist/esm-node/router/runtime/tanstack/routeTree.mjs +65 -13
- package/dist/esm-node/rsc/server.worker.mjs +2 -0
- package/dist/esm-node/ssr/serverRender/renderToString/entry.mjs +9 -6
- package/dist/types/boundary-debugger/index.d.ts +28 -0
- package/dist/types/cache/index.d.ts +1 -0
- package/dist/types/cli/alias.d.ts +7 -0
- package/dist/types/cli/code.d.ts +3 -0
- package/dist/types/cli/constants.d.ts +9 -0
- package/dist/types/cli/entry.d.ts +2 -0
- package/dist/types/cli/index.d.ts +11 -0
- package/dist/types/cli/ssr/index.d.ts +6 -0
- package/dist/types/cli/ssr/loadable-bundler-plugin.d.ts +31 -0
- package/dist/types/cli/ssr/mode.d.ts +15 -0
- package/dist/types/cli/template.d.ts +50 -0
- package/dist/types/cli/template.server.d.ts +20 -0
- package/dist/types/common.d.ts +8 -0
- package/dist/types/core/browser/hydrate.d.ts +5 -0
- package/dist/types/core/browser/index.d.ts +9 -0
- package/dist/types/core/browser/withCallback.d.ts +5 -0
- package/dist/types/core/compat/hooks.d.ts +4 -0
- package/dist/types/core/compat/index.d.ts +2 -0
- package/dist/types/core/compat/requestContext.d.ts +5 -0
- package/dist/types/core/config.d.ts +6 -0
- package/dist/types/core/constants.d.ts +6 -0
- package/dist/types/core/context/index.d.ts +50 -0
- package/dist/types/core/context/monitors/default.d.ts +2 -0
- package/dist/types/core/context/monitors/index.d.ts +1 -0
- package/dist/types/core/context/monitors/index.server.d.ts +2 -0
- package/dist/types/core/context/request/index.d.ts +1 -0
- package/dist/types/core/context/request/index.server.d.ts +1 -0
- package/dist/types/core/context/response/index.d.ts +4 -0
- package/dist/types/core/context/response/index.server.d.ts +4 -0
- package/dist/types/core/context/runtime.d.ts +46 -0
- package/dist/types/core/context/serverPayload/index.d.ts +4 -0
- package/dist/types/core/context/serverPayload/index.server.d.ts +31 -0
- package/dist/types/core/index.d.ts +5 -0
- package/dist/types/core/plugin/index.d.ts +5 -0
- package/dist/types/core/plugin/types.d.ts +10 -0
- package/dist/types/core/react/index.d.ts +2 -0
- package/dist/types/core/react/wrapper.d.ts +3 -0
- package/dist/types/core/server/constants.d.ts +4 -0
- package/dist/types/core/server/federatedCss.d.ts +5 -0
- package/dist/types/core/server/helmet.d.ts +5 -0
- package/dist/types/core/server/index.d.ts +4 -0
- package/dist/types/core/server/react/index.d.ts +2 -0
- package/dist/types/core/server/react/no-ssr-cache/index.d.ts +2 -0
- package/dist/types/core/server/react/nossr/index.d.ts +4 -0
- package/dist/types/core/server/requestHandler.d.ts +13 -0
- package/dist/types/core/server/scriptOrder.d.ts +1 -0
- package/dist/types/core/server/server.d.ts +4 -0
- package/dist/types/core/server/shared.d.ts +8 -0
- package/dist/types/core/server/stream/afterTemplate.d.ts +13 -0
- package/dist/types/core/server/stream/beforeTemplate.d.ts +10 -0
- package/dist/types/core/server/stream/beforeTemplate.worker.d.ts +10 -0
- package/dist/types/core/server/stream/createReadableStream.d.ts +2 -0
- package/dist/types/core/server/stream/createReadableStream.worker.d.ts +2 -0
- package/dist/types/core/server/stream/deferredScript.d.ts +15 -0
- package/dist/types/core/server/stream/index.d.ts +1 -0
- package/dist/types/core/server/stream/shared.d.ts +41 -0
- package/dist/types/core/server/stream/template.d.ts +9 -0
- package/dist/types/core/server/string/index.d.ts +2 -0
- package/dist/types/core/server/string/loadable.d.ts +47 -0
- package/dist/types/core/server/string/ssrData.d.ts +20 -0
- package/dist/types/core/server/string/types.d.ts +12 -0
- package/dist/types/core/server/tracer.d.ts +17 -0
- package/dist/types/core/server/utils.d.ts +19 -0
- package/dist/types/core/types.d.ts +49 -0
- package/dist/types/document/Body.d.ts +2 -0
- package/dist/types/document/Comment.d.ts +5 -0
- package/dist/types/document/DocumentContext.d.ts +13 -0
- package/dist/types/document/DocumentStructureContext.d.ts +12 -0
- package/dist/types/document/Head.d.ts +5 -0
- package/dist/types/document/Html.d.ts +4 -0
- package/dist/types/document/Links.d.ts +2 -0
- package/dist/types/document/Root.d.ts +7 -0
- package/dist/types/document/Script.d.ts +4 -0
- package/dist/types/document/Scripts.d.ts +2 -0
- package/dist/types/document/Style.d.ts +5 -0
- package/dist/types/document/Title.d.ts +1 -0
- package/dist/types/document/cli/index.d.ts +5 -0
- package/dist/types/document/constants.d.ts +25 -0
- package/dist/types/document/index.d.ts +12 -0
- package/dist/types/exports/config-routes.d.ts +9 -0
- package/dist/types/exports/head.d.ts +11 -0
- package/dist/types/exports/loadable.d.ts +10 -0
- package/dist/types/exports/tanstack-router.d.ts +7 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/internal.d.ts +2 -0
- package/dist/types/react-server.d.ts +3 -0
- package/dist/types/router/cli/code/getClientRoutes/getRoutes.d.ts +8 -0
- package/dist/types/router/cli/code/getClientRoutes/index.d.ts +1 -0
- package/dist/types/router/cli/code/getClientRoutes/utils.d.ts +4 -0
- package/dist/types/router/cli/code/index.d.ts +12 -0
- package/dist/types/router/cli/code/inspect.d.ts +22 -0
- package/dist/types/router/cli/code/makeLegalIdentifier.d.ts +1 -0
- package/dist/types/router/cli/code/nestedRoutes.d.ts +13 -0
- package/dist/types/router/cli/code/tanstackTypes.d.ts +10 -0
- package/dist/types/router/cli/code/templates.d.ts +28 -0
- package/dist/types/router/cli/code/utils.d.ts +12 -0
- package/dist/types/router/cli/config-routes/converter.d.ts +15 -0
- package/dist/types/router/cli/config-routes/parseRouteConfig.d.ts +32 -0
- package/dist/types/router/cli/constants.d.ts +31 -0
- package/dist/types/router/cli/entry.d.ts +18 -0
- package/dist/types/router/cli/handler.d.ts +28 -0
- package/dist/types/router/cli/index.d.ts +5 -0
- package/dist/types/router/index.d.ts +1 -0
- package/dist/types/router/internal.d.ts +2 -0
- package/dist/types/router/runtime/CSSLinks.d.ts +9 -0
- package/dist/types/router/runtime/DefaultNotFound.d.ts +2 -0
- package/dist/types/router/runtime/DeferredDataScripts.d.ts +2 -0
- package/dist/types/router/runtime/DeferredDataScripts.node.d.ts +11 -0
- package/dist/types/router/runtime/PrefetchLink.d.ts +27 -0
- package/dist/types/router/runtime/constants.d.ts +146 -0
- package/dist/types/router/runtime/hooks.d.ts +18 -0
- package/dist/types/router/runtime/index.d.ts +7 -0
- package/dist/types/router/runtime/internal.d.ts +11 -0
- package/dist/types/router/runtime/lifecycle.d.ts +25 -0
- package/dist/types/router/runtime/plugin.d.ts +9 -0
- package/dist/types/router/runtime/plugin.node.d.ts +7 -0
- package/dist/types/router/runtime/routerHelper.d.ts +5 -0
- package/dist/types/router/runtime/rsc-router.d.ts +20 -0
- package/dist/types/router/runtime/rsc.d.ts +1 -0
- package/dist/types/router/runtime/server.d.ts +1 -0
- package/dist/types/router/runtime/tanstack/basepathRewrite.d.ts +8 -0
- package/dist/types/router/runtime/tanstack/dataMutation.d.ts +29 -0
- package/dist/types/router/runtime/tanstack/hydrationBoundary.d.ts +2 -0
- package/dist/types/router/runtime/tanstack/outlet.d.ts +2 -0
- package/dist/types/router/runtime/tanstack/plugin.d.ts +6 -0
- package/dist/types/router/runtime/tanstack/plugin.node.d.ts +6 -0
- package/dist/types/router/runtime/tanstack/prefetchLink.d.ts +11 -0
- package/dist/types/router/runtime/tanstack/routeTree.d.ts +8 -0
- package/dist/types/router/runtime/tanstack/rsc/ClientSlot.d.ts +5 -0
- package/dist/types/router/runtime/tanstack/rsc/CompositeComponent.d.ts +3 -0
- package/dist/types/router/runtime/tanstack/rsc/ReplayableStream.d.ts +24 -0
- package/dist/types/router/runtime/tanstack/rsc/RscNodeRenderer.d.ts +5 -0
- package/dist/types/router/runtime/tanstack/rsc/SlotContext.d.ts +11 -0
- package/dist/types/router/runtime/tanstack/rsc/client.d.ts +11 -0
- package/dist/types/router/runtime/tanstack/rsc/createRscProxy.d.ts +7 -0
- package/dist/types/router/runtime/tanstack/rsc/index.d.ts +2 -0
- package/dist/types/router/runtime/tanstack/rsc/server.d.ts +14 -0
- package/dist/types/router/runtime/tanstack/rsc/slotUsageSanitizer.d.ts +2 -0
- package/dist/types/router/runtime/tanstack/rsc/symbols.d.ts +46 -0
- package/dist/types/router/runtime/types.d.ts +119 -0
- package/dist/types/router/runtime/utils.d.ts +48 -0
- package/dist/types/router/runtime/withRouter.d.ts +10 -0
- package/dist/types/rsc/client.d.ts +2 -0
- package/dist/types/rsc/server.d.ts +1 -0
- package/dist/types/rsc/server.worker.d.ts +1 -0
- package/package.json +24 -18
|
@@ -37,6 +37,9 @@ const external_hooks_js_namespaceObject = require("../hooks.js");
|
|
|
37
37
|
const external_lifecycle_js_namespaceObject = require("../lifecycle.js");
|
|
38
38
|
const external_utils_js_namespaceObject = require("../utils.js");
|
|
39
39
|
const external_basepathRewrite_js_namespaceObject = require("./basepathRewrite.js");
|
|
40
|
+
const external_hydrationBoundary_js_namespaceObject = require("./hydrationBoundary.js");
|
|
41
|
+
const external_outlet_js_namespaceObject = require("./outlet.js");
|
|
42
|
+
const external_prefetchLink_js_namespaceObject = require("./prefetchLink.js");
|
|
40
43
|
const external_routeTree_js_namespaceObject = require("./routeTree.js");
|
|
41
44
|
const client_js_namespaceObject = require("./rsc/client.js");
|
|
42
45
|
const BLOCKING_SUBSCRIBE_SYMBOL = Symbol.for('@modern-js/plugin-runtime:tanstack-blocking-subscribe');
|
|
@@ -66,6 +69,85 @@ function wrapRouterSubscribeWithBlockState(router, getBlockNavState) {
|
|
|
66
69
|
};
|
|
67
70
|
target[BLOCKING_SUBSCRIBE_SYMBOL] = true;
|
|
68
71
|
}
|
|
72
|
+
const routerHydrationRecords = new WeakMap();
|
|
73
|
+
const routeModulesKey = '_routeModules';
|
|
74
|
+
function pickRouteModuleComponent(routeModule, seen = new Set()) {
|
|
75
|
+
if ('function' == typeof routeModule || routeModule && 'object' == typeof routeModule && '$$typeof' in routeModule) return routeModule;
|
|
76
|
+
if (!routeModule || 'object' != typeof routeModule) return;
|
|
77
|
+
if (seen.has(routeModule)) return;
|
|
78
|
+
seen.add(routeModule);
|
|
79
|
+
const module = routeModule;
|
|
80
|
+
for (const candidate of [
|
|
81
|
+
module.default,
|
|
82
|
+
module.Component
|
|
83
|
+
]){
|
|
84
|
+
const component = pickRouteModuleComponent(candidate, seen);
|
|
85
|
+
if (component) return component;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function getCachedRouteModule(routeId) {
|
|
89
|
+
if ("u" < typeof window) return;
|
|
90
|
+
return window[routeModulesKey]?.[routeId];
|
|
91
|
+
}
|
|
92
|
+
async function preloadHydratedRouteComponents(router) {
|
|
93
|
+
const preloadableRouter = router;
|
|
94
|
+
const routesById = preloadableRouter.routesById || {};
|
|
95
|
+
const matches = preloadableRouter.stores.matches.get();
|
|
96
|
+
await Promise.all(matches.map((match)=>{
|
|
97
|
+
if (!match.routeId) return;
|
|
98
|
+
const route = routesById[match.routeId];
|
|
99
|
+
const component = route?.options?.component;
|
|
100
|
+
const preload = component?.load || component?.preload;
|
|
101
|
+
if ('function' != typeof preload) return;
|
|
102
|
+
return Promise.resolve(preload.call(component)).then((routeModule)=>{
|
|
103
|
+
const modernRouteId = route?.options?.staticData?.modernRouteId;
|
|
104
|
+
const resolvedComponent = pickRouteModuleComponent(modernRouteId && getCachedRouteModule(modernRouteId) || routeModule);
|
|
105
|
+
if (resolvedComponent && modernRouteId) route.options.component = (0, external_outlet_js_namespaceObject.withModernRouteMatchContext)(resolvedComponent, modernRouteId);
|
|
106
|
+
});
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
function getTanstackSsrHydrationRecord(router) {
|
|
110
|
+
let hydrationRecord = routerHydrationRecords.get(router);
|
|
111
|
+
if (!hydrationRecord) {
|
|
112
|
+
hydrationRecord = {
|
|
113
|
+
promise: Promise.resolve(),
|
|
114
|
+
status: 'pending'
|
|
115
|
+
};
|
|
116
|
+
routerHydrationRecords.set(router, hydrationRecord);
|
|
117
|
+
try {
|
|
118
|
+
hydrationRecord.promise = (0, client_namespaceObject.hydrate)(router).then(async (value)=>{
|
|
119
|
+
await preloadHydratedRouteComponents(router);
|
|
120
|
+
return value;
|
|
121
|
+
}).then((value)=>{
|
|
122
|
+
hydrationRecord.status = 'fulfilled';
|
|
123
|
+
return value;
|
|
124
|
+
}, (error)=>{
|
|
125
|
+
hydrationRecord.status = 'rejected';
|
|
126
|
+
hydrationRecord.error = error;
|
|
127
|
+
throw error;
|
|
128
|
+
});
|
|
129
|
+
} catch (error) {
|
|
130
|
+
hydrationRecord.status = 'rejected';
|
|
131
|
+
hydrationRecord.error = error;
|
|
132
|
+
hydrationRecord.promise = Promise.reject(error);
|
|
133
|
+
hydrationRecord.promise.catch(()=>{});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return hydrationRecord;
|
|
137
|
+
}
|
|
138
|
+
function getTanstackSsrHydrationPromise(router) {
|
|
139
|
+
return getTanstackSsrHydrationRecord(router).promise;
|
|
140
|
+
}
|
|
141
|
+
function hasTanstackSsrHydrationRecord(router) {
|
|
142
|
+
return routerHydrationRecords.has(router);
|
|
143
|
+
}
|
|
144
|
+
function ModernRouterClient({ router }) {
|
|
145
|
+
const hydrationRecord = getTanstackSsrHydrationRecord(router);
|
|
146
|
+
if ('rejected' === hydrationRecord.status) throw hydrationRecord.error;
|
|
147
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_router_namespaceObject.RouterProvider, {
|
|
148
|
+
router: router
|
|
149
|
+
});
|
|
150
|
+
}
|
|
69
151
|
function stripSyntheticNotFoundRoute(routes) {
|
|
70
152
|
return routes.filter((route)=>!('*' === route.path && !route.id && !route.loader)).map((route)=>{
|
|
71
153
|
if (!route.children?.length) return route;
|
|
@@ -84,9 +166,94 @@ const tanstackRouterPlugin = (userConfig = {})=>({
|
|
|
84
166
|
onBeforeHydrateRouter: external_hooks_js_namespaceObject.onBeforeHydrateRouter
|
|
85
167
|
},
|
|
86
168
|
setup: (api)=>{
|
|
87
|
-
api.
|
|
169
|
+
const hooks = api.getHooks();
|
|
170
|
+
let cachedRouteObjects;
|
|
171
|
+
let cachedRouteTree = null;
|
|
172
|
+
let cachedRouter = null;
|
|
173
|
+
let cachedRouterBasepath = null;
|
|
174
|
+
const getMergedConfig = ()=>{
|
|
88
175
|
const pluginConfig = api.getRuntimeConfig();
|
|
89
|
-
|
|
176
|
+
return (0, merge_namespaceObject.merge)(pluginConfig.router || {}, userConfig);
|
|
177
|
+
};
|
|
178
|
+
const getRouteObjects = ()=>{
|
|
179
|
+
if (void 0 !== cachedRouteObjects) return cachedRouteObjects;
|
|
180
|
+
const mergedConfig = getMergedConfig();
|
|
181
|
+
const { routesConfig, createRoutes } = mergedConfig;
|
|
182
|
+
const finalRouteConfig = {
|
|
183
|
+
routes: (0, index_js_namespaceObject.getGlobalRoutes)(),
|
|
184
|
+
globalApp: (0, index_js_namespaceObject.getGlobalLayoutApp)(),
|
|
185
|
+
...routesConfig
|
|
186
|
+
};
|
|
187
|
+
const routeObjects = createRoutes ? createRoutes() : (0, external_utils_js_namespaceObject.createRouteObjectsFromConfig)({
|
|
188
|
+
routesConfig: finalRouteConfig
|
|
189
|
+
}) || [];
|
|
190
|
+
const normalizedRouteObjects = createRoutes ? routeObjects : stripSyntheticNotFoundRoute(routeObjects);
|
|
191
|
+
cachedRouteObjects = hooks.modifyRoutes.call(normalizedRouteObjects);
|
|
192
|
+
return cachedRouteObjects;
|
|
193
|
+
};
|
|
194
|
+
const getRouteTree = ()=>{
|
|
195
|
+
if (cachedRouteTree) return cachedRouteTree;
|
|
196
|
+
const routeObjects = getRouteObjects();
|
|
197
|
+
if (!routeObjects.length) return null;
|
|
198
|
+
cachedRouteTree = (0, external_routeTree_js_namespaceObject.createRouteTreeFromRouteObjects)(routeObjects);
|
|
199
|
+
return cachedRouteTree;
|
|
200
|
+
};
|
|
201
|
+
const selectBasePath = (pathname)=>{
|
|
202
|
+
const { serverBase = [] } = getMergedConfig();
|
|
203
|
+
const match = serverBase.find((baseUrl)=>isSegmentPrefix(pathname, baseUrl));
|
|
204
|
+
return match || '/';
|
|
205
|
+
};
|
|
206
|
+
const getClientBasename = (runtimeContext)=>{
|
|
207
|
+
const { basename = '' } = getMergedConfig();
|
|
208
|
+
const baseUrl = selectBasePath(location.pathname).replace(/^\/*/, '/');
|
|
209
|
+
return '/' === baseUrl ? (0, external_utils_js_namespaceObject.urlJoin)(baseUrl, runtimeContext._internalRouterBaseName || basename || '') : baseUrl;
|
|
210
|
+
};
|
|
211
|
+
const getRouter = (runtimeContext, _basename)=>{
|
|
212
|
+
const routeTree = getRouteTree();
|
|
213
|
+
if (!routeTree) return null;
|
|
214
|
+
const lifecycleContext = {
|
|
215
|
+
framework: 'tanstack',
|
|
216
|
+
phase: 'client-create',
|
|
217
|
+
routes: getRouteObjects(),
|
|
218
|
+
runtimeContext,
|
|
219
|
+
basename: _basename
|
|
220
|
+
};
|
|
221
|
+
hooks.onBeforeCreateRouter.call(lifecycleContext);
|
|
222
|
+
if (cachedRouter && cachedRouterBasepath === _basename) {
|
|
223
|
+
wrapRouterSubscribeWithBlockState(cachedRouter, runtimeContext.unstable_getBlockNavState);
|
|
224
|
+
hooks.onAfterCreateRouter.call({
|
|
225
|
+
...lifecycleContext,
|
|
226
|
+
router: cachedRouter,
|
|
227
|
+
runtimeContext
|
|
228
|
+
});
|
|
229
|
+
return cachedRouter;
|
|
230
|
+
}
|
|
231
|
+
const mergedConfig = getMergedConfig();
|
|
232
|
+
const { supportHtml5History = true } = mergedConfig;
|
|
233
|
+
const history = supportHtml5History ? (0, react_router_namespaceObject.createBrowserHistory)() : (0, react_router_namespaceObject.createHashHistory)();
|
|
234
|
+
const rewrite = (0, external_basepathRewrite_js_namespaceObject.createModernBasepathRewrite)(_basename);
|
|
235
|
+
const serializationAdapters = (0, index_js_namespaceObject.getGlobalEnableRsc)() ? (0, client_js_namespaceObject.getTanstackRscSerializationAdapters)() : void 0;
|
|
236
|
+
cachedRouter = (0, react_router_namespaceObject.createRouter)({
|
|
237
|
+
routeTree,
|
|
238
|
+
basepath: '/',
|
|
239
|
+
rewrite,
|
|
240
|
+
history,
|
|
241
|
+
context: {},
|
|
242
|
+
...serializationAdapters ? {
|
|
243
|
+
serializationAdapters
|
|
244
|
+
} : {}
|
|
245
|
+
});
|
|
246
|
+
cachedRouterBasepath = _basename;
|
|
247
|
+
wrapRouterSubscribeWithBlockState(cachedRouter, runtimeContext.unstable_getBlockNavState);
|
|
248
|
+
hooks.onAfterCreateRouter.call({
|
|
249
|
+
...lifecycleContext,
|
|
250
|
+
router: cachedRouter,
|
|
251
|
+
runtimeContext
|
|
252
|
+
});
|
|
253
|
+
return cachedRouter;
|
|
254
|
+
};
|
|
255
|
+
api.onBeforeRender(async (context)=>{
|
|
256
|
+
const mergedConfig = getMergedConfig();
|
|
90
257
|
if ("u" > typeof window && window._SSR_DATA && mergedConfig.unstable_reloadOnURLMismatch) {
|
|
91
258
|
const { ssrContext } = context;
|
|
92
259
|
const currentPathname = (0, url_namespaceObject.normalizePathname)(window.location.pathname);
|
|
@@ -98,96 +265,32 @@ const tanstackRouterPlugin = (userConfig = {})=>({
|
|
|
98
265
|
}
|
|
99
266
|
}
|
|
100
267
|
context.router = {
|
|
268
|
+
Link: external_prefetchLink_js_namespaceObject.Link,
|
|
101
269
|
useMatches: react_router_namespaceObject.useMatches,
|
|
102
270
|
useLocation: react_router_namespaceObject.useLocation,
|
|
103
271
|
useNavigate: react_router_namespaceObject.useNavigate,
|
|
104
272
|
useRouter: react_router_namespaceObject.useRouter
|
|
105
273
|
};
|
|
274
|
+
const hasSSRBootstrap = "u" > typeof window && Boolean(window.$_TSR);
|
|
275
|
+
if (hasSSRBootstrap && getRouteObjects().length) {
|
|
276
|
+
const runtimeContext = context;
|
|
277
|
+
const router = getRouter(runtimeContext, getClientBasename(runtimeContext));
|
|
278
|
+
if (router) await getTanstackSsrHydrationPromise(router);
|
|
279
|
+
}
|
|
106
280
|
});
|
|
107
281
|
api.wrapRoot((App)=>{
|
|
108
|
-
|
|
109
|
-
const { serverBase = [], supportHtml5History = true, basename = '', routesConfig, createRoutes } = mergedConfig;
|
|
110
|
-
const finalRouteConfig = {
|
|
111
|
-
routes: (0, index_js_namespaceObject.getGlobalRoutes)(),
|
|
112
|
-
globalApp: (0, index_js_namespaceObject.getGlobalLayoutApp)(),
|
|
113
|
-
...routesConfig
|
|
114
|
-
};
|
|
115
|
-
if (!finalRouteConfig.routes && !createRoutes) return App;
|
|
116
|
-
const hooks = api.getHooks();
|
|
117
|
-
let cachedRouteObjects;
|
|
118
|
-
const getRouteObjects = ()=>{
|
|
119
|
-
if (void 0 !== cachedRouteObjects) return cachedRouteObjects;
|
|
120
|
-
const routeObjects = createRoutes ? createRoutes() : (0, external_utils_js_namespaceObject.createRouteObjectsFromConfig)({
|
|
121
|
-
routesConfig: finalRouteConfig
|
|
122
|
-
}) || [];
|
|
123
|
-
const normalizedRouteObjects = createRoutes ? routeObjects : stripSyntheticNotFoundRoute(routeObjects);
|
|
124
|
-
cachedRouteObjects = hooks.modifyRoutes.call(normalizedRouteObjects);
|
|
125
|
-
return cachedRouteObjects;
|
|
126
|
-
};
|
|
127
|
-
const selectBasePath = (pathname)=>{
|
|
128
|
-
const match = serverBase.find((baseUrl)=>isSegmentPrefix(pathname, baseUrl));
|
|
129
|
-
return match || '/';
|
|
130
|
-
};
|
|
131
|
-
let cachedRouteTree = null;
|
|
132
|
-
let cachedRouter = null;
|
|
133
|
-
let cachedRouterBasepath = null;
|
|
282
|
+
if (!getRouteObjects().length) return App;
|
|
134
283
|
const RouterWrapper = ()=>{
|
|
135
284
|
const runtimeContext = (0, external_react_namespaceObject.useContext)(index_js_namespaceObject.InternalRuntimeContext);
|
|
136
|
-
const
|
|
137
|
-
const
|
|
138
|
-
const routeTree = (0, external_react_namespaceObject.useMemo)(()=>{
|
|
139
|
-
if (cachedRouteTree) return cachedRouteTree;
|
|
140
|
-
const routeObjects = getRouteObjects();
|
|
141
|
-
if (!routeObjects.length) return null;
|
|
142
|
-
cachedRouteTree = (0, external_routeTree_js_namespaceObject.createRouteTreeFromRouteObjects)(routeObjects);
|
|
143
|
-
return cachedRouteTree;
|
|
144
|
-
}, []);
|
|
285
|
+
const _basename = getClientBasename(runtimeContext);
|
|
286
|
+
const routeTree = (0, external_react_namespaceObject.useMemo)(()=>getRouteTree(), []);
|
|
145
287
|
if (!routeTree) return App ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(App, {}) : null;
|
|
146
|
-
const router = (0, external_react_namespaceObject.useMemo)(()=>
|
|
147
|
-
const lifecycleContext = {
|
|
148
|
-
framework: 'tanstack',
|
|
149
|
-
phase: 'client-create',
|
|
150
|
-
routes: getRouteObjects(),
|
|
151
|
-
runtimeContext,
|
|
152
|
-
basename: _basename
|
|
153
|
-
};
|
|
154
|
-
hooks.onBeforeCreateRouter.call(lifecycleContext);
|
|
155
|
-
if (cachedRouter && cachedRouterBasepath === _basename) {
|
|
156
|
-
wrapRouterSubscribeWithBlockState(cachedRouter, runtimeContext.unstable_getBlockNavState);
|
|
157
|
-
hooks.onAfterCreateRouter.call({
|
|
158
|
-
...lifecycleContext,
|
|
159
|
-
router: cachedRouter,
|
|
160
|
-
runtimeContext
|
|
161
|
-
});
|
|
162
|
-
return cachedRouter;
|
|
163
|
-
}
|
|
164
|
-
const history = supportHtml5History ? (0, react_router_namespaceObject.createBrowserHistory)() : (0, react_router_namespaceObject.createHashHistory)();
|
|
165
|
-
const rewrite = (0, external_basepathRewrite_js_namespaceObject.createModernBasepathRewrite)(_basename);
|
|
166
|
-
const serializationAdapters = (0, index_js_namespaceObject.getGlobalEnableRsc)() ? (0, client_js_namespaceObject.getTanstackRscSerializationAdapters)() : void 0;
|
|
167
|
-
cachedRouter = (0, react_router_namespaceObject.createRouter)({
|
|
168
|
-
routeTree,
|
|
169
|
-
basepath: '/',
|
|
170
|
-
rewrite,
|
|
171
|
-
history,
|
|
172
|
-
context: {},
|
|
173
|
-
...serializationAdapters ? {
|
|
174
|
-
serializationAdapters
|
|
175
|
-
} : {}
|
|
176
|
-
});
|
|
177
|
-
cachedRouterBasepath = _basename;
|
|
178
|
-
wrapRouterSubscribeWithBlockState(cachedRouter, runtimeContext.unstable_getBlockNavState);
|
|
179
|
-
hooks.onAfterCreateRouter.call({
|
|
180
|
-
...lifecycleContext,
|
|
181
|
-
router: cachedRouter,
|
|
182
|
-
runtimeContext
|
|
183
|
-
});
|
|
184
|
-
return cachedRouter;
|
|
185
|
-
}, [
|
|
288
|
+
const router = (0, external_react_namespaceObject.useMemo)(()=>getRouter(runtimeContext, _basename), [
|
|
186
289
|
_basename,
|
|
187
290
|
routeTree,
|
|
188
|
-
supportHtml5History,
|
|
189
291
|
runtimeContext
|
|
190
292
|
]);
|
|
293
|
+
if (!router) return App ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(App, {}) : null;
|
|
191
294
|
const runtimeState = (0, external_lifecycle_js_namespaceObject.applyRouterRuntimeState)(runtimeContext, {
|
|
192
295
|
framework: 'tanstack',
|
|
193
296
|
basename: _basename,
|
|
@@ -201,30 +304,29 @@ const tanstackRouterPlugin = (userConfig = {})=>({
|
|
|
201
304
|
basename: _basename,
|
|
202
305
|
router
|
|
203
306
|
};
|
|
204
|
-
const hasSSRBootstrap = "u" > typeof window && Boolean(window.$_TSR);
|
|
205
|
-
|
|
307
|
+
const hasSSRBootstrap = "u" > typeof window && (Boolean(window.$_TSR) || hasTanstackSsrHydrationRecord(router));
|
|
308
|
+
const needsRouterClient = hasSSRBootstrap;
|
|
309
|
+
if (needsRouterClient) hooks.onBeforeHydrateRouter.call({
|
|
206
310
|
...lifecycleContext,
|
|
207
311
|
phase: 'hydrate',
|
|
208
312
|
router,
|
|
209
313
|
runtimeContext: runtimeState
|
|
210
314
|
});
|
|
211
|
-
const RouterContent =
|
|
212
|
-
|
|
213
|
-
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(client_namespaceObject.RouterClient, {
|
|
214
|
-
router: router
|
|
215
|
-
})
|
|
315
|
+
const RouterContent = needsRouterClient ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ModernRouterClient, {
|
|
316
|
+
router: router
|
|
216
317
|
}) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_router_namespaceObject.RouterProvider, {
|
|
217
318
|
router: router
|
|
218
319
|
});
|
|
219
|
-
|
|
320
|
+
const HydratableRouterContent = (0, external_hydrationBoundary_js_namespaceObject.wrapTanstackSsrHydrationBoundary)(RouterContent, hasSSRBootstrap);
|
|
321
|
+
if (needsRouterClient) hooks.onAfterHydrateRouter.call({
|
|
220
322
|
...lifecycleContext,
|
|
221
323
|
phase: 'hydrate',
|
|
222
324
|
router,
|
|
223
325
|
runtimeContext: runtimeState
|
|
224
326
|
});
|
|
225
327
|
return App ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(App, {
|
|
226
|
-
children:
|
|
227
|
-
}) :
|
|
328
|
+
children: HydratableRouterContent
|
|
329
|
+
}) : HydratableRouterContent;
|
|
228
330
|
};
|
|
229
331
|
return RouterWrapper;
|
|
230
332
|
});
|
|
@@ -38,6 +38,7 @@ const index_js_namespaceObject = require("../../../core/context/index.js");
|
|
|
38
38
|
const external_lifecycle_js_namespaceObject = require("../lifecycle.js");
|
|
39
39
|
const external_utils_js_namespaceObject = require("../utils.js");
|
|
40
40
|
const external_basepathRewrite_js_namespaceObject = require("./basepathRewrite.js");
|
|
41
|
+
const external_hydrationBoundary_js_namespaceObject = require("./hydrationBoundary.js");
|
|
41
42
|
const external_routeTree_js_namespaceObject = require("./routeTree.js");
|
|
42
43
|
function isPreloadableRouteComponent(component) {
|
|
43
44
|
if (!component || 'function' != typeof component) return false;
|
|
@@ -65,13 +66,6 @@ async function preloadMatchedRouteComponents(tanstackRouter) {
|
|
|
65
66
|
]);
|
|
66
67
|
}));
|
|
67
68
|
}
|
|
68
|
-
async function waitForRouterSerialization(tanstackRouter) {
|
|
69
|
-
const serverSsr = tanstackRouter.serverSsr;
|
|
70
|
-
if (!serverSsr || 'function' != typeof serverSsr.onSerializationFinished || serverSsr.isSerializationFinished?.()) return;
|
|
71
|
-
await new Promise((resolve)=>{
|
|
72
|
-
serverSsr.onSerializationFinished?.(resolve);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
69
|
function htmlEscapeAttr(value) {
|
|
76
70
|
return value.replace(/&/g, '&').replace(/"/g, '"');
|
|
77
71
|
}
|
|
@@ -217,7 +211,6 @@ const tanstackRouterPlugin = (userConfig = {})=>({
|
|
|
217
211
|
await preloadMatchedRouteComponents(serverRouter);
|
|
218
212
|
context.ssrContext?.response.status(tanstackRouter.state.statusCode);
|
|
219
213
|
await serverRouter.serverSsr?.dehydrate?.();
|
|
220
|
-
await waitForRouterSerialization(serverRouter);
|
|
221
214
|
const ssrScriptTags = serverRouter.serverSsr?.takeBufferedScripts?.();
|
|
222
215
|
const hydrationScripts = routerManagedTagsToHtml(ssrScriptTags);
|
|
223
216
|
const matchedRouteIds = (0, external_routeTree_js_namespaceObject.getModernRouteIdsFromMatches)(serverRouter);
|
|
@@ -255,12 +248,9 @@ const tanstackRouterPlugin = (userConfig = {})=>({
|
|
|
255
248
|
if (!router) return App ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(App, {
|
|
256
249
|
...props
|
|
257
250
|
}) : null;
|
|
258
|
-
const routerWrapper = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
router: router
|
|
262
|
-
})
|
|
263
|
-
});
|
|
251
|
+
const routerWrapper = (0, external_hydrationBoundary_js_namespaceObject.wrapTanstackSsrHydrationBoundary)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_router_namespaceObject.RouterProvider, {
|
|
252
|
+
router: router
|
|
253
|
+
}), true);
|
|
264
254
|
return App ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(App, {
|
|
265
255
|
children: routerWrapper
|
|
266
256
|
}) : routerWrapper;
|
|
@@ -29,13 +29,19 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
29
29
|
getModernRouteIdsFromMatches: ()=>getModernRouteIdsFromMatches
|
|
30
30
|
});
|
|
31
31
|
const react_router_namespaceObject = require("@tanstack/react-router");
|
|
32
|
+
const external_react_namespaceObject = require("react");
|
|
32
33
|
const external_DefaultNotFound_js_namespaceObject = require("../DefaultNotFound.js");
|
|
34
|
+
const external_outlet_js_namespaceObject = require("./outlet.js");
|
|
33
35
|
function createTanstackRoute(options) {
|
|
34
36
|
return (0, react_router_namespaceObject.createRoute)(options);
|
|
35
37
|
}
|
|
36
38
|
function createTanstackRootRoute(options) {
|
|
37
39
|
return (0, react_router_namespaceObject.createRootRoute)(options);
|
|
38
40
|
}
|
|
41
|
+
function wrapRouteComponentWithModernContext(route, component, routeId) {
|
|
42
|
+
const routeMatchId = routeId || route.id;
|
|
43
|
+
if (component && routeMatchId) route.options.component = (0, external_outlet_js_namespaceObject.withModernRouteMatchContext)(component, routeMatchId);
|
|
44
|
+
}
|
|
39
45
|
function toTanstackPath(pathname) {
|
|
40
46
|
return pathname.split('/').map((segment)=>{
|
|
41
47
|
if (!segment) return segment;
|
|
@@ -73,6 +79,40 @@ function isModernDeferredData(value) {
|
|
|
73
79
|
function normalizeModernLoaderResult(result) {
|
|
74
80
|
return isModernDeferredData(result) ? result.data : result;
|
|
75
81
|
}
|
|
82
|
+
function pickRouteModuleComponent(routeModule, seen = new Set()) {
|
|
83
|
+
if ('function' == typeof routeModule || routeModule && 'object' == typeof routeModule && '$$typeof' in routeModule) return routeModule;
|
|
84
|
+
if (!routeModule || 'object' != typeof routeModule) return;
|
|
85
|
+
if (seen.has(routeModule)) return;
|
|
86
|
+
seen.add(routeModule);
|
|
87
|
+
const module = routeModule;
|
|
88
|
+
for (const candidate of [
|
|
89
|
+
module.default,
|
|
90
|
+
module.Component
|
|
91
|
+
]){
|
|
92
|
+
const component = pickRouteModuleComponent(candidate, seen);
|
|
93
|
+
if (component) return component;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function createServerLazyImportComponent(lazyImport, fallbackComponent) {
|
|
97
|
+
if ("u" > typeof document) return fallbackComponent;
|
|
98
|
+
let resolvedComponent;
|
|
99
|
+
let pendingLoad;
|
|
100
|
+
const load = async ()=>{
|
|
101
|
+
if (resolvedComponent) return resolvedComponent;
|
|
102
|
+
const routeModule = await lazyImport();
|
|
103
|
+
const component = pickRouteModuleComponent(routeModule);
|
|
104
|
+
if (component) resolvedComponent = component;
|
|
105
|
+
return resolvedComponent;
|
|
106
|
+
};
|
|
107
|
+
const Component = (props)=>{
|
|
108
|
+
if (resolvedComponent) return (0, external_react_namespaceObject.createElement)(resolvedComponent, props);
|
|
109
|
+
pendingLoad ||= load();
|
|
110
|
+
throw pendingLoad;
|
|
111
|
+
};
|
|
112
|
+
Component.load = load;
|
|
113
|
+
Component.preload = load;
|
|
114
|
+
return Component;
|
|
115
|
+
}
|
|
76
116
|
function throwTanstackRedirect(location) {
|
|
77
117
|
const target = location || '/';
|
|
78
118
|
try {
|
|
@@ -141,7 +181,7 @@ function wrapModernLoader(modernRoute, modernLoader, revalidationState) {
|
|
|
141
181
|
const signal = ctx?.abortController?.signal || ctx?.signal || new AbortController().signal;
|
|
142
182
|
const baseRequest = ctx?.context?.request instanceof Request ? ctx.context.request : void 0;
|
|
143
183
|
const href = 'string' == typeof ctx?.location ? ctx.location : ctx?.location?.publicHref || ctx?.location?.href || ctx?.location?.url?.href || '';
|
|
144
|
-
const request = baseRequest ? new Request(baseRequest, {
|
|
184
|
+
const request = void 0 !== baseRequest ? new Request(baseRequest, {
|
|
145
185
|
signal
|
|
146
186
|
}) : createModernRequest(href, signal);
|
|
147
187
|
const params = mapParamsForModernLoader({
|
|
@@ -204,7 +244,7 @@ function wrapRouteObjectLoader(route, revalidationState) {
|
|
|
204
244
|
const signal = ctx?.abortController?.signal || ctx?.signal || new AbortController().signal;
|
|
205
245
|
const baseRequest = ctx?.context?.request instanceof Request ? ctx.context.request : void 0;
|
|
206
246
|
const href = 'string' == typeof ctx?.location ? ctx.location : ctx?.location?.publicHref || ctx?.location?.href || ctx?.location?.url?.href || '';
|
|
207
|
-
const request = baseRequest ? new Request(baseRequest, {
|
|
247
|
+
const request = void 0 !== baseRequest ? new Request(baseRequest, {
|
|
208
248
|
signal
|
|
209
249
|
}) : createModernRequest(href, signal);
|
|
210
250
|
const params = mapParamsForRouteObjectLoader({
|
|
@@ -239,10 +279,18 @@ function wrapRouteObjectLoader(route, revalidationState) {
|
|
|
239
279
|
}
|
|
240
280
|
function toRouteComponent(routeObject) {
|
|
241
281
|
const route = routeObject;
|
|
282
|
+
const lazyImport = 'function' == typeof route.lazyImport ? route.lazyImport : void 0;
|
|
283
|
+
const fallbackComponent = route.Component ? route.Component : route.element ? ()=>route.element : void 0;
|
|
284
|
+
if (lazyImport && fallbackComponent) return createServerLazyImportComponent(lazyImport, fallbackComponent);
|
|
242
285
|
if (route.Component) return route.Component;
|
|
243
286
|
const element = route.element;
|
|
244
287
|
if (element) return ()=>element;
|
|
245
288
|
}
|
|
289
|
+
function toModernRouteComponent(route) {
|
|
290
|
+
const component = route.component || void 0;
|
|
291
|
+
if ('function' == typeof route.lazyImport && component) return createServerLazyImportComponent(route.lazyImport, component);
|
|
292
|
+
return component;
|
|
293
|
+
}
|
|
246
294
|
function toErrorComponent(routeObject) {
|
|
247
295
|
const route = routeObject;
|
|
248
296
|
if (route.ErrorBoundary) return route.ErrorBoundary;
|
|
@@ -280,12 +328,12 @@ function createRouteFromRouteObject(opts) {
|
|
|
280
328
|
const shouldRevalidate = modernRouteObject.shouldRevalidate;
|
|
281
329
|
const shouldReload = createModernShouldReload(shouldRevalidate, revalidationState);
|
|
282
330
|
const stableFallbackId = routeObject.id || modernRouteObject.file || routeObject.path || 'pathless';
|
|
331
|
+
const component = toRouteComponent(routeObject);
|
|
283
332
|
const base = {
|
|
284
333
|
getParentRoute: ()=>parent,
|
|
285
|
-
component
|
|
334
|
+
component,
|
|
286
335
|
pendingComponent: toPendingComponent(routeObject),
|
|
287
336
|
errorComponent: toErrorComponent(routeObject),
|
|
288
|
-
wrapInSuspense: true,
|
|
289
337
|
staticData: createRouteStaticData({
|
|
290
338
|
modernRouteId: routeObject.id,
|
|
291
339
|
modernRouteAction: modernRouteObject.action,
|
|
@@ -304,6 +352,7 @@ function createRouteFromRouteObject(opts) {
|
|
|
304
352
|
if (isRouteObjectPathlessLayout(routeObject)) base.id = stableFallbackId;
|
|
305
353
|
else base.path = routeObject.index ? '/' : toTanstackPath(routeObject.path || '');
|
|
306
354
|
const route = createTanstackRoute(base);
|
|
355
|
+
wrapRouteComponentWithModernContext(route, component, routeObject.id);
|
|
307
356
|
const children = routeObject.children;
|
|
308
357
|
if (children && children.length > 0) {
|
|
309
358
|
const childRoutes = children.map((child)=>createRouteFromRouteObject({
|
|
@@ -322,7 +371,7 @@ function createRouteFromModernRoute(opts) {
|
|
|
322
371
|
const stableFallbackId = modernId || route._component || route.filename || route.data || ('function' == typeof route.loader ? route.id : void 0);
|
|
323
372
|
const pendingComponent = route.loading || route.pendingComponent;
|
|
324
373
|
const errorComponent = route.error || route.errorComponent;
|
|
325
|
-
const component = route
|
|
374
|
+
const component = toModernRouteComponent(route);
|
|
326
375
|
const modernLoader = route.loader;
|
|
327
376
|
const modernAction = route.action;
|
|
328
377
|
const modernShouldRevalidate = route.shouldRevalidate;
|
|
@@ -334,7 +383,6 @@ function createRouteFromModernRoute(opts) {
|
|
|
334
383
|
component: component || void 0,
|
|
335
384
|
pendingComponent: pendingComponent || void 0,
|
|
336
385
|
errorComponent: errorComponent || void 0,
|
|
337
|
-
wrapInSuspense: true,
|
|
338
386
|
staticData: createRouteStaticData({
|
|
339
387
|
modernRouteId: modernId,
|
|
340
388
|
modernRouteAction: modernAction,
|
|
@@ -356,6 +404,7 @@ function createRouteFromModernRoute(opts) {
|
|
|
356
404
|
base.path = isIndexRoute ? '/' : toTanstackPath(rawPath || '');
|
|
357
405
|
}
|
|
358
406
|
const tanstackRoute = createTanstackRoute(base);
|
|
407
|
+
wrapRouteComponentWithModernContext(tanstackRoute, component, modernId);
|
|
359
408
|
const children = route.children;
|
|
360
409
|
if (children && children.length > 0) {
|
|
361
410
|
const childRoutes = children.map((child)=>createRouteFromModernRoute({
|
|
@@ -368,7 +417,7 @@ function createRouteFromModernRoute(opts) {
|
|
|
368
417
|
}
|
|
369
418
|
function createRouteTreeFromModernRoutes(routes) {
|
|
370
419
|
const rootModern = routes.find((r)=>r && 'nested' === r.type && r.isRoot);
|
|
371
|
-
const rootComponent = rootModern
|
|
420
|
+
const rootComponent = rootModern ? toModernRouteComponent(rootModern) : void 0;
|
|
372
421
|
const pendingComponent = rootModern?.loading;
|
|
373
422
|
const errorComponent = rootModern?.error;
|
|
374
423
|
const rootLoader = rootModern?.loader;
|
|
@@ -381,7 +430,6 @@ function createRouteTreeFromModernRoutes(routes) {
|
|
|
381
430
|
component: rootComponent || void 0,
|
|
382
431
|
pendingComponent: pendingComponent || void 0,
|
|
383
432
|
errorComponent: errorComponent || void 0,
|
|
384
|
-
wrapInSuspense: true,
|
|
385
433
|
notFoundComponent: external_DefaultNotFound_js_namespaceObject.DefaultNotFound,
|
|
386
434
|
staticData: createRouteStaticData({
|
|
387
435
|
modernRouteId: rootModernId,
|
|
@@ -399,6 +447,7 @@ function createRouteTreeFromModernRoutes(routes) {
|
|
|
399
447
|
if (rootShouldReload) rootRouteOptions.shouldReload = rootShouldReload;
|
|
400
448
|
if (rootModern?.inValidSSRRoute) rootRouteOptions.ssr = false;
|
|
401
449
|
const rootRoute = createTanstackRootRoute(rootRouteOptions);
|
|
450
|
+
if (rootComponent) rootRoute.options.component = (0, external_outlet_js_namespaceObject.withModernRouteMatchContext)(rootComponent, react_router_namespaceObject.rootRouteId);
|
|
402
451
|
const topLevel = rootModern ? rootModern.children || [] : routes;
|
|
403
452
|
const childRoutes = topLevel.map((child)=>createRouteFromModernRoute({
|
|
404
453
|
parent: rootRoute,
|
|
@@ -415,11 +464,11 @@ function createRouteTreeFromRouteObjects(routes) {
|
|
|
415
464
|
const rootRevalidationState = {};
|
|
416
465
|
const rootShouldRevalidate = rootLikeRoute?.shouldRevalidate;
|
|
417
466
|
const rootShouldReload = createModernShouldReload(rootShouldRevalidate, rootRevalidationState);
|
|
467
|
+
const rootComponent = rootLikeRoute ? toRouteComponent(rootLikeRoute) : void 0;
|
|
418
468
|
const rootRouteOptions = {
|
|
419
|
-
component:
|
|
469
|
+
component: rootComponent,
|
|
420
470
|
pendingComponent: rootLikeRoute ? toPendingComponent(rootLikeRoute) : void 0,
|
|
421
471
|
errorComponent: rootLikeRoute ? toErrorComponent(rootLikeRoute) : void 0,
|
|
422
|
-
wrapInSuspense: true,
|
|
423
472
|
notFoundComponent: external_DefaultNotFound_js_namespaceObject.DefaultNotFound,
|
|
424
473
|
staticData: createRouteStaticData({
|
|
425
474
|
modernRouteId: rootLikeRoute?.id,
|
|
@@ -437,6 +486,7 @@ function createRouteTreeFromRouteObjects(routes) {
|
|
|
437
486
|
if (rootShouldReload) rootRouteOptions.shouldReload = rootShouldReload;
|
|
438
487
|
if (rootLikeRoute?.inValidSSRRoute) rootRouteOptions.ssr = false;
|
|
439
488
|
const rootRoute = createTanstackRootRoute(rootRouteOptions);
|
|
489
|
+
if (rootComponent) rootRoute.options.component = (0, external_outlet_js_namespaceObject.withModernRouteMatchContext)(rootComponent, react_router_namespaceObject.rootRouteId);
|
|
440
490
|
const topLevel = rootLikeRoute ? [
|
|
441
491
|
...rootLikeRoute.children || [],
|
|
442
492
|
...routes.filter((route)=>route !== rootLikeRoute)
|
|
@@ -450,9 +500,11 @@ function createRouteTreeFromRouteObjects(routes) {
|
|
|
450
500
|
}
|
|
451
501
|
function getModernRouteIdsFromMatches(router) {
|
|
452
502
|
const matches = router.state.matches || [];
|
|
503
|
+
const routesById = router.routesById;
|
|
453
504
|
const ids = matches.map((match)=>{
|
|
454
|
-
const
|
|
455
|
-
|
|
505
|
+
const normalizedMatch = match;
|
|
506
|
+
const routeId = 'string' == typeof normalizedMatch.routeId ? normalizedMatch.routeId : void 0;
|
|
507
|
+
return normalizedMatch.route?.options?.staticData?.modernRouteId ?? (routeId ? routesById?.[routeId]?.options?.staticData?.modernRouteId : void 0);
|
|
456
508
|
}).filter((id)=>'string' == typeof id);
|
|
457
509
|
return Array.from(new Set(ids));
|
|
458
510
|
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_modules__ = {
|
|
3
|
+
"@modern-js/render/rsc-worker" (module) {
|
|
4
|
+
module.exports = require("@modern-js/render/rsc-worker");
|
|
5
|
+
}
|
|
6
|
+
};
|
|
7
|
+
var __webpack_module_cache__ = {};
|
|
8
|
+
function __webpack_require__(moduleId) {
|
|
9
|
+
var cachedModule = __webpack_module_cache__[moduleId];
|
|
10
|
+
if (void 0 !== cachedModule) return cachedModule.exports;
|
|
11
|
+
var module = __webpack_module_cache__[moduleId] = {
|
|
12
|
+
exports: {}
|
|
13
|
+
};
|
|
14
|
+
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
15
|
+
return module.exports;
|
|
16
|
+
}
|
|
17
|
+
(()=>{
|
|
18
|
+
__webpack_require__.n = (module)=>{
|
|
19
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
20
|
+
__webpack_require__.d(getter, {
|
|
21
|
+
a: getter
|
|
22
|
+
});
|
|
23
|
+
return getter;
|
|
24
|
+
};
|
|
25
|
+
})();
|
|
26
|
+
(()=>{
|
|
27
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
28
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: definition[key]
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
})();
|
|
34
|
+
(()=>{
|
|
35
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
36
|
+
})();
|
|
37
|
+
(()=>{
|
|
38
|
+
__webpack_require__.r = (exports1)=>{
|
|
39
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
40
|
+
value: 'Module'
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
43
|
+
value: true
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
var __webpack_exports__ = {};
|
|
48
|
+
(()=>{
|
|
49
|
+
__webpack_require__.r(__webpack_exports__);
|
|
50
|
+
var _modern_js_render_rsc_worker__rspack_import_0 = __webpack_require__("@modern-js/render/rsc-worker");
|
|
51
|
+
var __rspack_reexport = {};
|
|
52
|
+
for(const __rspack_import_key in _modern_js_render_rsc_worker__rspack_import_0)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_modern_js_render_rsc_worker__rspack_import_0[__rspack_import_key];
|
|
53
|
+
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
54
|
+
})();
|
|
55
|
+
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
56
|
+
Object.defineProperty(exports, '__esModule', {
|
|
57
|
+
value: true
|
|
58
|
+
});
|