@bleedingdev/modern-js-plugin-tanstack 3.2.0-ultramodern.9 → 3.2.0-ultramodern.90
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/cli/index.js +12 -0
- package/dist/cjs/cli/routeSplitting.js +83 -0
- package/dist/cjs/cli/tanstackTypes.js +146 -58
- package/dist/cjs/runtime/index.js +38 -6
- package/dist/cjs/runtime/plugin.js +6 -5
- package/dist/cjs/runtime/plugin.node.js +27 -10
- package/dist/cjs/runtime/plugin.worker.js +49 -0
- package/dist/cjs/runtime/routeTree.js +55 -4
- package/dist/cjs/runtime/types.js +27 -1
- package/dist/esm/cli/index.mjs +4 -1
- package/dist/esm/cli/routeSplitting.mjs +43 -0
- package/dist/esm/cli/tanstackTypes.mjs +146 -58
- package/dist/esm/runtime/index.mjs +2 -1
- package/dist/esm/runtime/plugin.mjs +10 -9
- package/dist/esm/runtime/plugin.node.mjs +28 -11
- package/dist/esm/runtime/plugin.worker.mjs +1 -0
- package/dist/esm/runtime/routeTree.mjs +55 -4
- package/dist/esm/runtime/types.mjs +7 -0
- package/dist/esm-node/cli/index.mjs +4 -1
- package/dist/esm-node/cli/routeSplitting.mjs +44 -0
- package/dist/esm-node/cli/tanstackTypes.mjs +146 -58
- package/dist/esm-node/runtime/index.mjs +2 -1
- package/dist/esm-node/runtime/plugin.mjs +10 -9
- package/dist/esm-node/runtime/plugin.node.mjs +28 -11
- package/dist/esm-node/runtime/plugin.worker.mjs +2 -0
- package/dist/esm-node/runtime/routeTree.mjs +55 -4
- package/dist/esm-node/runtime/types.mjs +7 -0
- package/dist/types/cli/index.d.ts +4 -0
- package/dist/types/cli/routeSplitting.d.ts +29 -0
- package/dist/types/runtime/index.d.ts +3 -1
- package/dist/types/runtime/plugin.d.ts +1 -1
- package/dist/types/runtime/plugin.node.d.ts +1 -1
- package/dist/types/runtime/plugin.worker.d.ts +1 -0
- package/dist/types/runtime/types.d.ts +7 -0
- package/package.json +14 -14
- package/src/cli/index.ts +17 -0
- package/src/cli/routeSplitting.ts +81 -0
- package/src/cli/tanstackTypes.ts +216 -67
- package/src/runtime/index.tsx +13 -1
- package/src/runtime/plugin.node.tsx +54 -7
- package/src/runtime/plugin.tsx +8 -5
- package/src/runtime/plugin.worker.tsx +4 -0
- package/src/runtime/routeTree.ts +125 -8
- package/src/runtime/types.ts +13 -0
- package/tests/router/cli.test.ts +239 -0
- package/tests/router/fastDefaults.test.ts +25 -0
- package/tests/router/routeTree.test.ts +193 -1
- package/tests/router/tanstackTypes.test.ts +184 -0
|
@@ -34,24 +34,41 @@ const node_namespaceObject = require("@modern-js/runtime-utils/node");
|
|
|
34
34
|
const time_namespaceObject = require("@modern-js/runtime-utils/time");
|
|
35
35
|
const constants_namespaceObject = require("@modern-js/utils/universal/constants");
|
|
36
36
|
const react_router_namespaceObject = require("@tanstack/react-router");
|
|
37
|
-
const server_namespaceObject = require("@tanstack/
|
|
37
|
+
const server_namespaceObject = require("@tanstack/router-core/ssr/server");
|
|
38
38
|
const external_react_namespaceObject = require("react");
|
|
39
39
|
const external_basepathRewrite_js_namespaceObject = require("./basepathRewrite.js");
|
|
40
40
|
const external_hooks_js_namespaceObject = require("./hooks.js");
|
|
41
41
|
const external_lifecycle_js_namespaceObject = require("./lifecycle.js");
|
|
42
42
|
const external_routeTree_js_namespaceObject = require("./routeTree.js");
|
|
43
43
|
const payloadRouter_js_namespaceObject = require("./rsc/payloadRouter.js");
|
|
44
|
+
const external_types_js_namespaceObject = require("./types.js");
|
|
44
45
|
const external_utils_js_namespaceObject = require("./utils.js");
|
|
45
46
|
const setTanstackRscServerPayload = (payload)=>{
|
|
46
47
|
const storageContext = node_namespaceObject.storage.useContext?.();
|
|
47
48
|
if (storageContext) storageContext.serverPayload = payload;
|
|
48
49
|
};
|
|
50
|
+
function isPromiseLike(value) {
|
|
51
|
+
return Boolean(value && 'function' == typeof value.then);
|
|
52
|
+
}
|
|
49
53
|
function isPreloadableRouteComponent(component) {
|
|
50
54
|
if (!component || 'function' != typeof component) return false;
|
|
51
55
|
const preloadable = component;
|
|
52
56
|
return 'function' == typeof preloadable.load || 'function' == typeof preloadable.preload;
|
|
53
57
|
}
|
|
58
|
+
function isReactLazyRouteComponent(component) {
|
|
59
|
+
return Boolean(component) && 'object' == typeof component && 'function' == typeof component._init && '_payload' in component;
|
|
60
|
+
}
|
|
61
|
+
async function preloadReactLazyRouteComponent(component) {
|
|
62
|
+
try {
|
|
63
|
+
component._init?.(component._payload);
|
|
64
|
+
} catch (thrown) {
|
|
65
|
+
if (!isPromiseLike(thrown)) throw thrown;
|
|
66
|
+
await thrown;
|
|
67
|
+
component._init?.(component._payload);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
54
70
|
async function preloadRouteComponent(component) {
|
|
71
|
+
if (isReactLazyRouteComponent(component)) return void await preloadReactLazyRouteComponent(component);
|
|
55
72
|
if (!isPreloadableRouteComponent(component)) return;
|
|
56
73
|
if ('function' == typeof component.load) return void await component.load({});
|
|
57
74
|
await component.preload?.({});
|
|
@@ -190,6 +207,7 @@ const tanstackRouterPlugin = (userConfig = {})=>{
|
|
|
190
207
|
};
|
|
191
208
|
hooks.onBeforeCreateRouter.call(routerLifecycleContext);
|
|
192
209
|
const tanstackRouter = (0, react_router_namespaceObject.createRouter)({
|
|
210
|
+
...(0, external_types_js_namespaceObject.getModernTanstackRouterFastDefaults)(mergedConfig),
|
|
193
211
|
routeTree,
|
|
194
212
|
history,
|
|
195
213
|
basepath: '/',
|
|
@@ -235,10 +253,12 @@ const tanstackRouterPlugin = (userConfig = {})=>{
|
|
|
235
253
|
await preloadMatchedRouteComponents(serverRouter);
|
|
236
254
|
context.ssrContext?.response.status(tanstackRouter.state.statusCode);
|
|
237
255
|
await serverRouter.serverSsr?.dehydrate?.();
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
256
|
+
if (isRSCNavigation) {
|
|
257
|
+
await waitForRouterSerialization(serverRouter);
|
|
258
|
+
setTanstackRscServerPayload((0, payloadRouter_js_namespaceObject.createTanstackRscServerPayload)(serverRouter, {
|
|
259
|
+
omitClientLoaderData: true
|
|
260
|
+
}));
|
|
261
|
+
}
|
|
242
262
|
const ssrScriptTags = serverRouter.serverSsr?.takeBufferedScripts?.();
|
|
243
263
|
const hydrationScripts = routerManagedTagsToHtml(ssrScriptTags);
|
|
244
264
|
const matchedRouteIds = (0, external_routeTree_js_namespaceObject.getModernRouteIdsFromMatches)(serverRouter);
|
|
@@ -276,11 +296,8 @@ const tanstackRouterPlugin = (userConfig = {})=>{
|
|
|
276
296
|
if (!router) return App ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(App, {
|
|
277
297
|
...props
|
|
278
298
|
}) : null;
|
|
279
|
-
const routerWrapper = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(
|
|
280
|
-
|
|
281
|
-
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_router_namespaceObject.RouterProvider, {
|
|
282
|
-
router: router
|
|
283
|
-
})
|
|
299
|
+
const routerWrapper = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_router_namespaceObject.RouterProvider, {
|
|
300
|
+
router: router
|
|
284
301
|
});
|
|
285
302
|
return App ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(App, {
|
|
286
303
|
children: routerWrapper
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.n = (module)=>{
|
|
5
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
6
|
+
__webpack_require__.d(getter, {
|
|
7
|
+
a: getter
|
|
8
|
+
});
|
|
9
|
+
return getter;
|
|
10
|
+
};
|
|
11
|
+
})();
|
|
12
|
+
(()=>{
|
|
13
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
14
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: definition[key]
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
})();
|
|
20
|
+
(()=>{
|
|
21
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
22
|
+
})();
|
|
23
|
+
(()=>{
|
|
24
|
+
__webpack_require__.r = (exports1)=>{
|
|
25
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
26
|
+
value: 'Module'
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
29
|
+
value: true
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
})();
|
|
33
|
+
var __webpack_exports__ = {};
|
|
34
|
+
__webpack_require__.r(__webpack_exports__);
|
|
35
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
36
|
+
default: ()=>external_plugin_node_js_default(),
|
|
37
|
+
tanstackRouterPlugin: ()=>external_plugin_node_js_namespaceObject.tanstackRouterPlugin
|
|
38
|
+
});
|
|
39
|
+
const external_plugin_node_js_namespaceObject = require("./plugin.node.js");
|
|
40
|
+
var external_plugin_node_js_default = /*#__PURE__*/ __webpack_require__.n(external_plugin_node_js_namespaceObject);
|
|
41
|
+
exports["default"] = __webpack_exports__["default"];
|
|
42
|
+
exports.tanstackRouterPlugin = __webpack_exports__.tanstackRouterPlugin;
|
|
43
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
44
|
+
"default",
|
|
45
|
+
"tanstackRouterPlugin"
|
|
46
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
47
|
+
Object.defineProperty(exports, '__esModule', {
|
|
48
|
+
value: true
|
|
49
|
+
});
|
|
@@ -29,6 +29,7 @@ __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");
|
|
33
34
|
const payloadRouter_js_namespaceObject = require("./rsc/payloadRouter.js");
|
|
34
35
|
function createTanstackRoute(options) {
|
|
@@ -84,6 +85,40 @@ function normalizeModernLoaderResponse(result) {
|
|
|
84
85
|
}
|
|
85
86
|
return normalizeModernLoaderResult(result);
|
|
86
87
|
}
|
|
88
|
+
function pickRouteModuleComponent(routeModule, seen = new Set()) {
|
|
89
|
+
if ('function' == typeof routeModule || routeModule && 'object' == typeof routeModule && '$$typeof' in routeModule) return routeModule;
|
|
90
|
+
if (!routeModule || 'object' != typeof routeModule) return;
|
|
91
|
+
if (seen.has(routeModule)) return;
|
|
92
|
+
seen.add(routeModule);
|
|
93
|
+
const module = routeModule;
|
|
94
|
+
for (const candidate of [
|
|
95
|
+
module.default,
|
|
96
|
+
module.Component
|
|
97
|
+
]){
|
|
98
|
+
const component = pickRouteModuleComponent(candidate, seen);
|
|
99
|
+
if (component) return component;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function createServerLazyImportComponent(lazyImport, fallbackComponent) {
|
|
103
|
+
if ("u" > typeof document) return fallbackComponent;
|
|
104
|
+
let resolvedComponent;
|
|
105
|
+
let pendingLoad;
|
|
106
|
+
const load = async ()=>{
|
|
107
|
+
if (resolvedComponent) return resolvedComponent;
|
|
108
|
+
const routeModule = await lazyImport();
|
|
109
|
+
const component = pickRouteModuleComponent(routeModule);
|
|
110
|
+
if (component) resolvedComponent = component;
|
|
111
|
+
return resolvedComponent;
|
|
112
|
+
};
|
|
113
|
+
const Component = (props)=>{
|
|
114
|
+
if (resolvedComponent) return (0, external_react_namespaceObject.createElement)(resolvedComponent, props);
|
|
115
|
+
pendingLoad ||= load();
|
|
116
|
+
throw pendingLoad;
|
|
117
|
+
};
|
|
118
|
+
Component.load = load;
|
|
119
|
+
Component.preload = load;
|
|
120
|
+
return Component;
|
|
121
|
+
}
|
|
87
122
|
function isAbsoluteUrl(value) {
|
|
88
123
|
try {
|
|
89
124
|
new URL(value);
|
|
@@ -156,7 +191,7 @@ function wrapModernLoader(modernRoute, modernLoader, revalidationState, options
|
|
|
156
191
|
const signal = ctx?.abortController?.signal || ctx?.signal || new AbortController().signal;
|
|
157
192
|
const baseRequest = ctx?.context?.request instanceof Request ? ctx.context.request : void 0;
|
|
158
193
|
const href = 'string' == typeof ctx?.location ? ctx.location : ctx?.location?.publicHref || ctx?.location?.href || ctx?.location?.url?.href || '';
|
|
159
|
-
const request = baseRequest ? new Request(baseRequest, {
|
|
194
|
+
const request = void 0 !== baseRequest ? new Request(baseRequest, {
|
|
160
195
|
signal
|
|
161
196
|
}) : createModernRequest(href, signal);
|
|
162
197
|
const params = mapParamsForModernLoader({
|
|
@@ -221,7 +256,7 @@ function wrapRouteObjectLoader(route, revalidationState, options = {}) {
|
|
|
221
256
|
const signal = ctx?.abortController?.signal || ctx?.signal || new AbortController().signal;
|
|
222
257
|
const baseRequest = ctx?.context?.request instanceof Request ? ctx.context.request : void 0;
|
|
223
258
|
const href = 'string' == typeof ctx?.location ? ctx.location : ctx?.location?.publicHref || ctx?.location?.href || ctx?.location?.url?.href || '';
|
|
224
|
-
const request = baseRequest ? new Request(baseRequest, {
|
|
259
|
+
const request = void 0 !== baseRequest ? new Request(baseRequest, {
|
|
225
260
|
signal
|
|
226
261
|
}) : createModernRequest(href, signal);
|
|
227
262
|
const params = mapParamsForRouteObjectLoader({
|
|
@@ -258,10 +293,18 @@ function wrapRouteObjectLoader(route, revalidationState, options = {}) {
|
|
|
258
293
|
}
|
|
259
294
|
function toRouteComponent(routeObject) {
|
|
260
295
|
const route = routeObject;
|
|
296
|
+
const lazyImport = 'function' == typeof route.lazyImport ? route.lazyImport : void 0;
|
|
297
|
+
const fallbackComponent = route.Component ? route.Component : route.element ? ()=>route.element : void 0;
|
|
298
|
+
if (lazyImport && fallbackComponent) return createServerLazyImportComponent(lazyImport, fallbackComponent);
|
|
261
299
|
if (route.Component) return route.Component;
|
|
262
300
|
const element = route.element;
|
|
263
301
|
if (element) return ()=>element;
|
|
264
302
|
}
|
|
303
|
+
function toModernRouteComponent(route) {
|
|
304
|
+
const component = route.component || void 0;
|
|
305
|
+
if ('function' == typeof route.lazyImport && component) return createServerLazyImportComponent(route.lazyImport, component);
|
|
306
|
+
return component;
|
|
307
|
+
}
|
|
265
308
|
function toErrorComponent(routeObject) {
|
|
266
309
|
const route = routeObject;
|
|
267
310
|
if (route.ErrorBoundary) return route.ErrorBoundary;
|
|
@@ -304,6 +347,8 @@ function createRouteFromRouteObject(opts) {
|
|
|
304
347
|
component: toRouteComponent(routeObject),
|
|
305
348
|
pendingComponent: toPendingComponent(routeObject),
|
|
306
349
|
errorComponent: toErrorComponent(routeObject),
|
|
350
|
+
validateSearch: modernRouteObject.validateSearch,
|
|
351
|
+
loaderDeps: modernRouteObject.loaderDeps,
|
|
307
352
|
wrapInSuspense: true,
|
|
308
353
|
staticData: createRouteStaticData({
|
|
309
354
|
modernRouteId: routeObject.id,
|
|
@@ -342,7 +387,7 @@ function createRouteFromModernRoute(opts) {
|
|
|
342
387
|
const stableFallbackId = modernId || route._component || route.filename || route.data || ('function' == typeof route.loader ? route.id : void 0);
|
|
343
388
|
const pendingComponent = route.loading || route.pendingComponent;
|
|
344
389
|
const errorComponent = route.error || route.errorComponent;
|
|
345
|
-
const component = route
|
|
390
|
+
const component = toModernRouteComponent(route);
|
|
346
391
|
const modernLoader = route.loader;
|
|
347
392
|
const modernAction = route.action;
|
|
348
393
|
const modernShouldRevalidate = route.shouldRevalidate;
|
|
@@ -354,6 +399,8 @@ function createRouteFromModernRoute(opts) {
|
|
|
354
399
|
component: component || void 0,
|
|
355
400
|
pendingComponent: pendingComponent || void 0,
|
|
356
401
|
errorComponent: errorComponent || void 0,
|
|
402
|
+
validateSearch: route.validateSearch,
|
|
403
|
+
loaderDeps: route.loaderDeps,
|
|
357
404
|
wrapInSuspense: true,
|
|
358
405
|
staticData: createRouteStaticData({
|
|
359
406
|
modernRouteId: modernId,
|
|
@@ -389,7 +436,7 @@ function createRouteFromModernRoute(opts) {
|
|
|
389
436
|
}
|
|
390
437
|
function createRouteTreeFromModernRoutes(routes, options = {}) {
|
|
391
438
|
const rootModern = routes.find((r)=>r && 'nested' === r.type && r.isRoot);
|
|
392
|
-
const rootComponent = rootModern
|
|
439
|
+
const rootComponent = rootModern ? toModernRouteComponent(rootModern) : void 0;
|
|
393
440
|
const pendingComponent = rootModern?.loading;
|
|
394
441
|
const errorComponent = rootModern?.error;
|
|
395
442
|
const rootLoader = rootModern?.loader;
|
|
@@ -402,6 +449,8 @@ function createRouteTreeFromModernRoutes(routes, options = {}) {
|
|
|
402
449
|
component: rootComponent || void 0,
|
|
403
450
|
pendingComponent: pendingComponent || void 0,
|
|
404
451
|
errorComponent: errorComponent || void 0,
|
|
452
|
+
validateSearch: rootModern?.validateSearch,
|
|
453
|
+
loaderDeps: rootModern?.loaderDeps,
|
|
405
454
|
wrapInSuspense: true,
|
|
406
455
|
notFoundComponent: external_DefaultNotFound_js_namespaceObject.DefaultNotFound,
|
|
407
456
|
staticData: createRouteStaticData({
|
|
@@ -441,6 +490,8 @@ function createRouteTreeFromRouteObjects(routes, options = {}) {
|
|
|
441
490
|
component: rootLikeRoute ? toRouteComponent(rootLikeRoute) : void 0,
|
|
442
491
|
pendingComponent: rootLikeRoute ? toPendingComponent(rootLikeRoute) : void 0,
|
|
443
492
|
errorComponent: rootLikeRoute ? toErrorComponent(rootLikeRoute) : void 0,
|
|
493
|
+
validateSearch: rootLikeRoute?.validateSearch,
|
|
494
|
+
loaderDeps: rootLikeRoute?.loaderDeps,
|
|
444
495
|
wrapInSuspense: true,
|
|
445
496
|
notFoundComponent: external_DefaultNotFound_js_namespaceObject.DefaultNotFound,
|
|
446
497
|
staticData: createRouteStaticData({
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
3
14
|
(()=>{
|
|
4
15
|
__webpack_require__.r = (exports1)=>{
|
|
5
16
|
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
@@ -12,7 +23,22 @@ var __webpack_require__ = {};
|
|
|
12
23
|
})();
|
|
13
24
|
var __webpack_exports__ = {};
|
|
14
25
|
__webpack_require__.r(__webpack_exports__);
|
|
15
|
-
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
getModernTanstackRouterFastDefaults: ()=>getModernTanstackRouterFastDefaults,
|
|
28
|
+
modernTanstackRouterFastDefaults: ()=>modernTanstackRouterFastDefaults
|
|
29
|
+
});
|
|
30
|
+
const modernTanstackRouterFastDefaults = {
|
|
31
|
+
defaultStructuralSharing: true
|
|
32
|
+
};
|
|
33
|
+
const getModernTanstackRouterFastDefaults = (config = {})=>({
|
|
34
|
+
defaultStructuralSharing: config.defaultStructuralSharing ?? modernTanstackRouterFastDefaults.defaultStructuralSharing
|
|
35
|
+
});
|
|
36
|
+
exports.getModernTanstackRouterFastDefaults = __webpack_exports__.getModernTanstackRouterFastDefaults;
|
|
37
|
+
exports.modernTanstackRouterFastDefaults = __webpack_exports__.modernTanstackRouterFastDefaults;
|
|
38
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
39
|
+
"getModernTanstackRouterFastDefaults",
|
|
40
|
+
"modernTanstackRouterFastDefaults"
|
|
41
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
16
42
|
Object.defineProperty(exports, '__esModule', {
|
|
17
43
|
value: true
|
|
18
44
|
});
|
package/dist/esm/cli/index.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import node_path from "node:path";
|
|
2
2
|
import { NESTED_ROUTE_SPEC_FILE, filterRoutesForServer, fs } from "@modern-js/utils";
|
|
3
|
+
import { createTanstackRsbuildRouteSplittingProfile, isTanstackStartRouteModuleSource, resolveTanstackRouteCodeSplittingEnabled } from "./routeSplitting.mjs";
|
|
3
4
|
import { generateTanstackRouterTypesSourceForEntry, isTanstackRouterFrameworkEnabled } from "./tanstackTypes.mjs";
|
|
4
5
|
import { __webpack_require__ } from "../rslib-runtime.mjs";
|
|
5
6
|
import * as __rspack_external__modern_js_runtime_cli_401ee077 from "@modern-js/runtime/cli";
|
|
@@ -78,6 +79,7 @@ async function writeTanstackRouterTypesForEntries(opts) {
|
|
|
78
79
|
function tanstackRouterPlugin(options = {}) {
|
|
79
80
|
const routesDir = options.routesDir || DEFAULT_ROUTES_DIR;
|
|
80
81
|
const generatedDirName = options.generatedDirName || DEFAULT_GENERATED_DIR_NAME;
|
|
82
|
+
const routeSplittingProfile = createTanstackRsbuildRouteSplittingProfile(options);
|
|
81
83
|
return {
|
|
82
84
|
name: '@modern-js/plugin-tanstack',
|
|
83
85
|
required: [
|
|
@@ -113,6 +115,7 @@ function tanstackRouterPlugin(options = {}) {
|
|
|
113
115
|
entry: entry || getRuntimeRouterCli().isRouteEntry(entryPath, routesDir)
|
|
114
116
|
}));
|
|
115
117
|
api.config(()=>({
|
|
118
|
+
...routeSplittingProfile.defaultConfig,
|
|
116
119
|
source: {
|
|
117
120
|
include: [
|
|
118
121
|
/[\\/]node_modules[\\/]@tanstack[\\/]react-router[\\/]/,
|
|
@@ -195,4 +198,4 @@ function tanstackRouterPlugin(options = {}) {
|
|
|
195
198
|
}
|
|
196
199
|
const src_cli = tanstackRouterPlugin;
|
|
197
200
|
export default src_cli;
|
|
198
|
-
export { generateTanstackRouterTypesSourceForEntry, isTanstackRouterFrameworkEnabled, tanstackRouterPlugin, writeTanstackRegisterFile, writeTanstackRouterTypesForEntries };
|
|
201
|
+
export { createTanstackRsbuildRouteSplittingProfile, generateTanstackRouterTypesSourceForEntry, isTanstackRouterFrameworkEnabled, isTanstackStartRouteModuleSource, resolveTanstackRouteCodeSplittingEnabled, tanstackRouterPlugin, writeTanstackRegisterFile, writeTanstackRouterTypesForEntries };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const TANSTACK_START_ROUTE_FACTORY_CALLS = [
|
|
2
|
+
'createFileRoute',
|
|
3
|
+
'createRootRoute',
|
|
4
|
+
'createRootRouteWithContext'
|
|
5
|
+
];
|
|
6
|
+
const TANSTACK_START_ROUTE_FACTORY_REGEX = /\b(createFileRoute|createRootRoute|createRootRouteWithContext)\s*(?:<|\()/;
|
|
7
|
+
function isTanstackStartRouteModuleSource(source) {
|
|
8
|
+
return TANSTACK_START_ROUTE_FACTORY_REGEX.test(source);
|
|
9
|
+
}
|
|
10
|
+
function resolveTanstackRouteCodeSplittingEnabled(option) {
|
|
11
|
+
if ('boolean' == typeof option) return option;
|
|
12
|
+
return option?.enabled ?? true;
|
|
13
|
+
}
|
|
14
|
+
function createTanstackRsbuildRouteSplittingProfile(opts) {
|
|
15
|
+
return {
|
|
16
|
+
defaultConfig: {
|
|
17
|
+
output: {
|
|
18
|
+
splitRouteChunks: resolveTanstackRouteCodeSplittingEnabled(opts.routeCodeSplitting)
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
modernRouteChunks: {
|
|
22
|
+
enabled: resolveTanstackRouteCodeSplittingEnabled(opts.routeCodeSplitting),
|
|
23
|
+
owner: 'modern'
|
|
24
|
+
},
|
|
25
|
+
builderChunkSplit: {
|
|
26
|
+
owner: 'modern-rsbuild',
|
|
27
|
+
preserved: true
|
|
28
|
+
},
|
|
29
|
+
tanstackStartRspackSplitter: {
|
|
30
|
+
compatible: false,
|
|
31
|
+
reason: 'TanStack Start Rsbuild route splitting is tied to TanStack file-route factory modules; Modern generates TanStack route trees from Modern route metadata and owns route chunking through output.splitRouteChunks.',
|
|
32
|
+
clientDeleteNodes: [
|
|
33
|
+
'ssr',
|
|
34
|
+
'server',
|
|
35
|
+
'headers'
|
|
36
|
+
],
|
|
37
|
+
routeFactoryCalls: [
|
|
38
|
+
...TANSTACK_START_ROUTE_FACTORY_CALLS
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export { createTanstackRsbuildRouteSplittingProfile, isTanstackStartRouteModuleSource, resolveTanstackRouteCodeSplittingEnabled };
|