@bleedingdev/modern-js-plugin-tanstack 3.2.0-ultramodern.9 → 3.2.0-ultramodern.91

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 (48) hide show
  1. package/dist/cjs/cli/index.js +12 -0
  2. package/dist/cjs/cli/routeSplitting.js +83 -0
  3. package/dist/cjs/cli/tanstackTypes.js +146 -58
  4. package/dist/cjs/runtime/index.js +38 -6
  5. package/dist/cjs/runtime/plugin.js +6 -5
  6. package/dist/cjs/runtime/plugin.node.js +27 -10
  7. package/dist/cjs/runtime/plugin.worker.js +49 -0
  8. package/dist/cjs/runtime/routeTree.js +55 -4
  9. package/dist/cjs/runtime/types.js +27 -1
  10. package/dist/esm/cli/index.mjs +4 -1
  11. package/dist/esm/cli/routeSplitting.mjs +43 -0
  12. package/dist/esm/cli/tanstackTypes.mjs +146 -58
  13. package/dist/esm/runtime/index.mjs +2 -1
  14. package/dist/esm/runtime/plugin.mjs +10 -9
  15. package/dist/esm/runtime/plugin.node.mjs +28 -11
  16. package/dist/esm/runtime/plugin.worker.mjs +1 -0
  17. package/dist/esm/runtime/routeTree.mjs +55 -4
  18. package/dist/esm/runtime/types.mjs +7 -0
  19. package/dist/esm-node/cli/index.mjs +4 -1
  20. package/dist/esm-node/cli/routeSplitting.mjs +44 -0
  21. package/dist/esm-node/cli/tanstackTypes.mjs +146 -58
  22. package/dist/esm-node/runtime/index.mjs +2 -1
  23. package/dist/esm-node/runtime/plugin.mjs +10 -9
  24. package/dist/esm-node/runtime/plugin.node.mjs +28 -11
  25. package/dist/esm-node/runtime/plugin.worker.mjs +2 -0
  26. package/dist/esm-node/runtime/routeTree.mjs +55 -4
  27. package/dist/esm-node/runtime/types.mjs +7 -0
  28. package/dist/types/cli/index.d.ts +4 -0
  29. package/dist/types/cli/routeSplitting.d.ts +29 -0
  30. package/dist/types/runtime/index.d.ts +3 -1
  31. package/dist/types/runtime/plugin.d.ts +1 -1
  32. package/dist/types/runtime/plugin.node.d.ts +1 -1
  33. package/dist/types/runtime/plugin.worker.d.ts +1 -0
  34. package/dist/types/runtime/types.d.ts +7 -0
  35. package/package.json +14 -14
  36. package/src/cli/index.ts +17 -0
  37. package/src/cli/routeSplitting.ts +81 -0
  38. package/src/cli/tanstackTypes.ts +216 -67
  39. package/src/runtime/index.tsx +13 -1
  40. package/src/runtime/plugin.node.tsx +54 -7
  41. package/src/runtime/plugin.tsx +8 -5
  42. package/src/runtime/plugin.worker.tsx +4 -0
  43. package/src/runtime/routeTree.ts +125 -8
  44. package/src/runtime/types.ts +13 -0
  45. package/tests/router/cli.test.ts +239 -0
  46. package/tests/router/fastDefaults.test.ts +25 -0
  47. package/tests/router/routeTree.test.ts +193 -1
  48. 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/react-router/ssr/server");
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
- await waitForRouterSerialization(serverRouter);
239
- if (isRSCNavigation) setTanstackRscServerPayload((0, payloadRouter_js_namespaceObject.createTanstackRscServerPayload)(serverRouter, {
240
- omitClientLoaderData: true
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)(external_react_namespaceObject.Suspense, {
280
- fallback: null,
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.component;
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?.component;
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
- for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
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
  });
@@ -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 };