@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.
- package/dist/cjs/config.cjs +1 -3
- package/dist/cjs/config.cjs.map +1 -1
- package/dist/cjs/config.d.cts +3 -3
- package/dist/cjs/filesystem/physical/getRouteNodes.cjs +18 -4
- package/dist/cjs/filesystem/physical/getRouteNodes.cjs.map +1 -1
- package/dist/cjs/filesystem/physical/getRouteNodes.d.cts +1 -0
- package/dist/cjs/filesystem/virtual/config.cjs.map +1 -1
- package/dist/cjs/filesystem/virtual/getRouteNodes.cjs +18 -12
- package/dist/cjs/filesystem/virtual/getRouteNodes.cjs.map +1 -1
- package/dist/cjs/filesystem/virtual/getRouteNodes.d.cts +4 -1
- package/dist/cjs/filesystem/virtual/loadConfigFile.cjs.map +1 -1
- package/dist/cjs/generator.cjs +144 -97
- package/dist/cjs/generator.cjs.map +1 -1
- package/dist/cjs/generator.d.cts +11 -9
- package/dist/cjs/index.d.cts +1 -1
- package/dist/cjs/logger.cjs.map +1 -1
- package/dist/cjs/plugin/default-generator-plugin.cjs +16 -10
- package/dist/cjs/plugin/default-generator-plugin.cjs.map +1 -1
- package/dist/cjs/template.cjs.map +1 -1
- package/dist/cjs/transform/default-transform-plugin.cjs +6 -4
- package/dist/cjs/transform/default-transform-plugin.cjs.map +1 -1
- package/dist/cjs/transform/transform.cjs +41 -20
- package/dist/cjs/transform/transform.cjs.map +1 -1
- package/dist/cjs/transform/utils.cjs.map +1 -1
- package/dist/cjs/types.d.cts +5 -0
- package/dist/cjs/utils.cjs +43 -24
- package/dist/cjs/utils.cjs.map +1 -1
- package/dist/cjs/utils.d.cts +6 -0
- package/dist/esm/config.d.ts +3 -3
- package/dist/esm/config.js +2 -4
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/filesystem/physical/getRouteNodes.d.ts +1 -0
- package/dist/esm/filesystem/physical/getRouteNodes.js +19 -5
- package/dist/esm/filesystem/physical/getRouteNodes.js.map +1 -1
- package/dist/esm/filesystem/virtual/config.js.map +1 -1
- package/dist/esm/filesystem/virtual/getRouteNodes.d.ts +4 -1
- package/dist/esm/filesystem/virtual/getRouteNodes.js +19 -13
- package/dist/esm/filesystem/virtual/getRouteNodes.js.map +1 -1
- package/dist/esm/filesystem/virtual/loadConfigFile.js.map +1 -1
- package/dist/esm/generator.d.ts +11 -9
- package/dist/esm/generator.js +147 -100
- package/dist/esm/generator.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/logger.js.map +1 -1
- package/dist/esm/plugin/default-generator-plugin.js +16 -10
- package/dist/esm/plugin/default-generator-plugin.js.map +1 -1
- package/dist/esm/template.js.map +1 -1
- package/dist/esm/transform/default-transform-plugin.js +6 -4
- package/dist/esm/transform/default-transform-plugin.js.map +1 -1
- package/dist/esm/transform/transform.js +41 -20
- package/dist/esm/transform/transform.js.map +1 -1
- package/dist/esm/transform/utils.js.map +1 -1
- package/dist/esm/types.d.ts +5 -0
- package/dist/esm/utils.d.ts +6 -0
- package/dist/esm/utils.js +43 -24
- package/dist/esm/utils.js.map +1 -1
- package/package.json +5 -5
- package/src/config.ts +1 -2
- package/src/filesystem/physical/getRouteNodes.ts +31 -11
- package/src/filesystem/virtual/getRouteNodes.ts +32 -23
- package/src/generator.ts +193 -71
- package/src/index.ts +2 -0
- package/src/plugin/default-generator-plugin.ts +16 -3
- package/src/transform/default-transform-plugin.ts +5 -2
- package/src/transform/transform.ts +59 -25
- package/src/types.ts +7 -0
- 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
|
|
470
|
-
|
|
471
|
-
|
|
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
|
-
|
|
475
|
-
|
|
476
|
-
|
|
476
|
+
if (node._fsRouteType === 'pathless_layout' && !node.children?.length) {
|
|
477
|
+
return
|
|
478
|
+
}
|
|
477
479
|
|
|
478
|
-
|
|
480
|
+
const route = `${node.variableName}`
|
|
479
481
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
482
|
+
if (node.children?.length) {
|
|
483
|
+
const childConfigs = buildRouteTreeConfig(
|
|
484
|
+
node.children,
|
|
485
|
+
exportName,
|
|
486
|
+
disableTypes,
|
|
487
|
+
depth + 1,
|
|
488
|
+
)
|
|
487
489
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
${node.children
|
|
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
|
-
|
|
495
|
-
${node.children
|
|
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
|
-
|
|
512
|
+
const routeWithChildren = `const ${route}${exportName}WithChildren = ${route}${exportName}._addFileChildren(${route}${exportName}Children)`
|
|
499
513
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
514
|
+
return [
|
|
515
|
+
childConfigs.join('\n'),
|
|
516
|
+
childrenDeclaration,
|
|
517
|
+
children,
|
|
518
|
+
routeWithChildren,
|
|
519
|
+
].join('\n\n')
|
|
520
|
+
}
|
|
507
521
|
|
|
508
|
-
|
|
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
|
+
}
|