@tanstack/router-generator 1.121.0-alpha.27 → 1.121.0-alpha.28

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 (67) hide show
  1. package/dist/cjs/config.cjs +1 -3
  2. package/dist/cjs/config.cjs.map +1 -1
  3. package/dist/cjs/config.d.cts +3 -3
  4. package/dist/cjs/filesystem/physical/getRouteNodes.cjs +18 -4
  5. package/dist/cjs/filesystem/physical/getRouteNodes.cjs.map +1 -1
  6. package/dist/cjs/filesystem/physical/getRouteNodes.d.cts +1 -0
  7. package/dist/cjs/filesystem/virtual/config.cjs.map +1 -1
  8. package/dist/cjs/filesystem/virtual/getRouteNodes.cjs +18 -12
  9. package/dist/cjs/filesystem/virtual/getRouteNodes.cjs.map +1 -1
  10. package/dist/cjs/filesystem/virtual/getRouteNodes.d.cts +4 -1
  11. package/dist/cjs/filesystem/virtual/loadConfigFile.cjs.map +1 -1
  12. package/dist/cjs/generator.cjs +144 -97
  13. package/dist/cjs/generator.cjs.map +1 -1
  14. package/dist/cjs/generator.d.cts +11 -9
  15. package/dist/cjs/index.d.cts +1 -1
  16. package/dist/cjs/logger.cjs.map +1 -1
  17. package/dist/cjs/plugin/default-generator-plugin.cjs +16 -10
  18. package/dist/cjs/plugin/default-generator-plugin.cjs.map +1 -1
  19. package/dist/cjs/template.cjs.map +1 -1
  20. package/dist/cjs/transform/default-transform-plugin.cjs +6 -4
  21. package/dist/cjs/transform/default-transform-plugin.cjs.map +1 -1
  22. package/dist/cjs/transform/transform.cjs +41 -20
  23. package/dist/cjs/transform/transform.cjs.map +1 -1
  24. package/dist/cjs/transform/utils.cjs.map +1 -1
  25. package/dist/cjs/types.d.cts +5 -0
  26. package/dist/cjs/utils.cjs +43 -24
  27. package/dist/cjs/utils.cjs.map +1 -1
  28. package/dist/cjs/utils.d.cts +6 -0
  29. package/dist/esm/config.d.ts +3 -3
  30. package/dist/esm/config.js +2 -4
  31. package/dist/esm/config.js.map +1 -1
  32. package/dist/esm/filesystem/physical/getRouteNodes.d.ts +1 -0
  33. package/dist/esm/filesystem/physical/getRouteNodes.js +19 -5
  34. package/dist/esm/filesystem/physical/getRouteNodes.js.map +1 -1
  35. package/dist/esm/filesystem/virtual/config.js.map +1 -1
  36. package/dist/esm/filesystem/virtual/getRouteNodes.d.ts +4 -1
  37. package/dist/esm/filesystem/virtual/getRouteNodes.js +19 -13
  38. package/dist/esm/filesystem/virtual/getRouteNodes.js.map +1 -1
  39. package/dist/esm/filesystem/virtual/loadConfigFile.js.map +1 -1
  40. package/dist/esm/generator.d.ts +11 -9
  41. package/dist/esm/generator.js +147 -100
  42. package/dist/esm/generator.js.map +1 -1
  43. package/dist/esm/index.d.ts +1 -1
  44. package/dist/esm/logger.js.map +1 -1
  45. package/dist/esm/plugin/default-generator-plugin.js +16 -10
  46. package/dist/esm/plugin/default-generator-plugin.js.map +1 -1
  47. package/dist/esm/template.js.map +1 -1
  48. package/dist/esm/transform/default-transform-plugin.js +6 -4
  49. package/dist/esm/transform/default-transform-plugin.js.map +1 -1
  50. package/dist/esm/transform/transform.js +41 -20
  51. package/dist/esm/transform/transform.js.map +1 -1
  52. package/dist/esm/transform/utils.js.map +1 -1
  53. package/dist/esm/types.d.ts +5 -0
  54. package/dist/esm/utils.d.ts +6 -0
  55. package/dist/esm/utils.js +43 -24
  56. package/dist/esm/utils.js.map +1 -1
  57. package/package.json +5 -5
  58. package/src/config.ts +1 -2
  59. package/src/filesystem/physical/getRouteNodes.ts +31 -11
  60. package/src/filesystem/virtual/getRouteNodes.ts +32 -23
  61. package/src/generator.ts +193 -71
  62. package/src/index.ts +2 -0
  63. package/src/plugin/default-generator-plugin.ts +16 -3
  64. package/src/transform/default-transform-plugin.ts +5 -2
  65. package/src/transform/transform.ts +59 -25
  66. package/src/types.ts +7 -0
  67. package/src/utils.ts +79 -31
package/src/utils.ts CHANGED
@@ -466,47 +466,61 @@ export function buildRouteTreeConfig(
466
466
  disableTypes: boolean,
467
467
  depth = 1,
468
468
  ): Array<string> {
469
- const children = nodes.map((node) => {
470
- if (node._fsRouteType === '__root') {
471
- return
472
- }
469
+ const children = nodes
470
+ .filter((n) => n.exports?.includes(exportName))
471
+ .map((node) => {
472
+ if (node._fsRouteType === '__root') {
473
+ return
474
+ }
473
475
 
474
- if (node._fsRouteType === 'pathless_layout' && !node.children?.length) {
475
- return
476
- }
476
+ if (node._fsRouteType === 'pathless_layout' && !node.children?.length) {
477
+ return
478
+ }
477
479
 
478
- const route = `${node.variableName}`
480
+ const route = `${node.variableName}`
479
481
 
480
- if (node.children?.length) {
481
- const childConfigs = buildRouteTreeConfig(
482
- node.children,
483
- exportName,
484
- disableTypes,
485
- depth + 1,
486
- )
482
+ if (node.children?.length) {
483
+ const childConfigs = buildRouteTreeConfig(
484
+ node.children,
485
+ exportName,
486
+ disableTypes,
487
+ depth + 1,
488
+ )
487
489
 
488
- const childrenDeclaration = disableTypes
489
- ? ''
490
- : `interface ${route}${exportName}Children {
491
- ${node.children.map((child) => `${child.variableName}${exportName}: typeof ${getResolvedRouteNodeVariableName(child, exportName)}`).join(',')}
490
+ const childrenDeclaration = disableTypes
491
+ ? ''
492
+ : `interface ${route}${exportName}Children {
493
+ ${node.children
494
+ .filter((n) => n.exports?.includes(exportName))
495
+ .map(
496
+ (child) =>
497
+ `${child.variableName}${exportName}: typeof ${getResolvedRouteNodeVariableName(child, exportName)}`,
498
+ )
499
+ .join(',')}
492
500
  }`
493
501
 
494
- const children = `const ${route}${exportName}Children${disableTypes ? '' : `: ${route}${exportName}Children`} = {
495
- ${node.children.map((child) => `${child.variableName}${exportName}: ${getResolvedRouteNodeVariableName(child, exportName)}`).join(',')}
502
+ const children = `const ${route}${exportName}Children${disableTypes ? '' : `: ${route}${exportName}Children`} = {
503
+ ${node.children
504
+ .filter((n) => n.exports?.includes(exportName))
505
+ .map(
506
+ (child) =>
507
+ `${child.variableName}${exportName}: ${getResolvedRouteNodeVariableName(child, exportName)}`,
508
+ )
509
+ .join(',')}
496
510
  }`
497
511
 
498
- const routeWithChildren = `const ${route}${exportName}WithChildren = ${route}${exportName}._addFileChildren(${route}${exportName}Children)`
512
+ const routeWithChildren = `const ${route}${exportName}WithChildren = ${route}${exportName}._addFileChildren(${route}${exportName}Children)`
499
513
 
500
- return [
501
- childConfigs.join('\n'),
502
- childrenDeclaration,
503
- children,
504
- routeWithChildren,
505
- ].join('\n\n')
506
- }
514
+ return [
515
+ childConfigs.join('\n'),
516
+ childrenDeclaration,
517
+ children,
518
+ routeWithChildren,
519
+ ].join('\n\n')
520
+ }
507
521
 
508
- return undefined
509
- })
522
+ return undefined
523
+ })
510
524
 
511
525
  return children.filter((x) => x !== undefined)
512
526
  }
@@ -583,3 +597,37 @@ export const findParent = (
583
597
  }
584
598
  return findParent(node.parent, exportName)
585
599
  }
600
+
601
+ export function buildFileRoutesByPathInterface(opts: {
602
+ routeNodes: Array<RouteNode>
603
+ module: string
604
+ interfaceName: string
605
+ exportName: string
606
+ }): string {
607
+ return `declare module '${opts.module}' {
608
+ interface ${opts.interfaceName} {
609
+ ${opts.routeNodes
610
+ .map((routeNode) => {
611
+ const filePathId = routeNode.routePath
612
+ let preloaderRoute = ''
613
+
614
+ if (routeNode.exports?.includes(opts.exportName)) {
615
+ preloaderRoute = `typeof ${routeNode.variableName}${opts.exportName}Import`
616
+ } else {
617
+ preloaderRoute = 'unknown'
618
+ }
619
+
620
+ const parent = findParent(routeNode, opts.exportName)
621
+
622
+ return `'${filePathId}': {
623
+ id: '${filePathId}'
624
+ path: '${inferPath(routeNode)}'
625
+ fullPath: '${inferFullPath(routeNode)}'
626
+ preLoaderRoute: ${preloaderRoute}
627
+ parentRoute: typeof ${parent}
628
+ }`
629
+ })
630
+ .join('\n')}
631
+ }
632
+ }`
633
+ }