@tanstack/router-generator 1.166.29 → 1.166.30
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 +0 -1
- package/dist/cjs/config.cjs.map +1 -1
- package/dist/cjs/config.d.cts +0 -3
- package/dist/cjs/generator.cjs +1 -44
- package/dist/cjs/generator.cjs.map +1 -1
- package/dist/cjs/index.cjs +0 -2
- package/dist/cjs/index.d.cts +1 -2
- package/dist/cjs/template.cjs +15 -12
- package/dist/cjs/template.cjs.map +1 -1
- package/dist/cjs/transform/transform.cjs +283 -266
- package/dist/cjs/transform/transform.cjs.map +1 -1
- package/dist/cjs/transform/transform.d.cts +1 -3
- package/dist/cjs/transform/types.d.cts +1 -7
- package/dist/cjs/utils.cjs +0 -16
- package/dist/cjs/utils.cjs.map +1 -1
- package/dist/cjs/utils.d.cts +0 -24
- package/dist/esm/config.d.ts +0 -3
- package/dist/esm/config.js +0 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/generator.js +2 -45
- package/dist/esm/generator.js.map +1 -1
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.js +1 -2
- package/dist/esm/template.js +15 -12
- package/dist/esm/template.js.map +1 -1
- package/dist/esm/transform/transform.d.ts +1 -3
- package/dist/esm/transform/transform.js +280 -265
- package/dist/esm/transform/transform.js.map +1 -1
- package/dist/esm/transform/types.d.ts +1 -7
- package/dist/esm/utils.d.ts +0 -24
- package/dist/esm/utils.js +1 -15
- package/dist/esm/utils.js.map +1 -1
- package/package.json +4 -4
- package/src/config.ts +0 -1
- package/src/generator.ts +0 -66
- package/src/index.ts +1 -7
- package/src/template.ts +16 -36
- package/src/transform/transform.ts +633 -446
- package/src/transform/types.ts +1 -8
- package/src/utils.ts +5 -43
- package/dist/cjs/transform/utils.cjs +0 -34
- package/dist/cjs/transform/utils.cjs.map +0 -1
- package/dist/cjs/transform/utils.d.cts +0 -2
- package/dist/esm/transform/utils.d.ts +0 -2
- package/dist/esm/transform/utils.js +0 -34
- package/dist/esm/transform/utils.js.map +0 -1
- package/src/transform/utils.ts +0 -42
package/src/transform/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { RouteNode } from '../types'
|
|
2
2
|
import type { Config } from '../config'
|
|
3
3
|
|
|
4
4
|
export interface TransformOptions {
|
|
@@ -23,15 +23,8 @@ export type TransformResult =
|
|
|
23
23
|
error?: any
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export interface TransformImportsConfig {
|
|
27
|
-
banned?: Array<ImportDeclaration>
|
|
28
|
-
required?: Array<ImportDeclaration>
|
|
29
|
-
}
|
|
30
|
-
|
|
31
26
|
export interface TransformContext {
|
|
32
27
|
target: Config['target']
|
|
33
28
|
routeId: string
|
|
34
29
|
lazy: boolean
|
|
35
|
-
verboseFileRoutes: boolean
|
|
36
|
-
preferredQuote?: '"' | "'"
|
|
37
30
|
}
|
package/src/utils.ts
CHANGED
|
@@ -13,7 +13,6 @@ import type { ImportDeclaration, RouteNode } from './types'
|
|
|
13
13
|
*/
|
|
14
14
|
export class RoutePrefixMap {
|
|
15
15
|
private prefixToRoute: Map<string, RouteNode> = new Map()
|
|
16
|
-
private layoutRoutes: Array<RouteNode> = []
|
|
17
16
|
|
|
18
17
|
constructor(routes: Array<RouteNode>) {
|
|
19
18
|
for (const route of routes) {
|
|
@@ -34,20 +33,7 @@ export class RoutePrefixMap {
|
|
|
34
33
|
|
|
35
34
|
// Index by exact path for direct lookups
|
|
36
35
|
this.prefixToRoute.set(route.routePath, route)
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
route._fsRouteType === 'pathless_layout' ||
|
|
40
|
-
route._fsRouteType === 'layout' ||
|
|
41
|
-
route._fsRouteType === '__root'
|
|
42
|
-
) {
|
|
43
|
-
this.layoutRoutes.push(route)
|
|
44
|
-
}
|
|
45
36
|
}
|
|
46
|
-
|
|
47
|
-
// Sort by path length descending for longest-match-first
|
|
48
|
-
this.layoutRoutes.sort(
|
|
49
|
-
(a, b) => (b.routePath?.length ?? 0) - (a.routePath?.length ?? 0),
|
|
50
|
-
)
|
|
51
37
|
}
|
|
52
38
|
|
|
53
39
|
/**
|
|
@@ -482,7 +468,7 @@ export function createTokenRegex(
|
|
|
482
468
|
}
|
|
483
469
|
}
|
|
484
470
|
|
|
485
|
-
|
|
471
|
+
function isBracketWrappedSegment(segment: string): boolean {
|
|
486
472
|
return segment.startsWith('[') && segment.endsWith(']')
|
|
487
473
|
}
|
|
488
474
|
|
|
@@ -685,26 +671,10 @@ export const getResolvedRouteNodeVariableName = (
|
|
|
685
671
|
: `${routeNode.variableName}Route`
|
|
686
672
|
}
|
|
687
673
|
|
|
688
|
-
/**
|
|
689
|
-
* Checks if a given RouteNode is valid for augmenting it with typing based on conditions.
|
|
690
|
-
* Also asserts that the RouteNode is defined.
|
|
691
|
-
*
|
|
692
|
-
* @param routeNode - The RouteNode to check.
|
|
693
|
-
* @returns A boolean indicating whether the RouteNode is defined.
|
|
694
|
-
*/
|
|
695
|
-
export function isRouteNodeValidForAugmentation(
|
|
696
|
-
routeNode?: RouteNode,
|
|
697
|
-
): routeNode is RouteNode {
|
|
698
|
-
if (!routeNode || routeNode.isVirtual) {
|
|
699
|
-
return false
|
|
700
|
-
}
|
|
701
|
-
return true
|
|
702
|
-
}
|
|
703
|
-
|
|
704
674
|
/**
|
|
705
675
|
* Infers the path for use by TS
|
|
706
676
|
*/
|
|
707
|
-
|
|
677
|
+
const inferPath = (routeNode: RouteNode): string => {
|
|
708
678
|
if (routeNode.cleanedPath === '/') {
|
|
709
679
|
return routeNode.cleanedPath ?? ''
|
|
710
680
|
}
|
|
@@ -811,7 +781,7 @@ export const createRouteNodesById = (
|
|
|
811
781
|
/**
|
|
812
782
|
* Infers to path
|
|
813
783
|
*/
|
|
814
|
-
|
|
784
|
+
const inferTo = (routeNode: RouteNode): string => {
|
|
815
785
|
const fullPath = inferFullPath(routeNode)
|
|
816
786
|
|
|
817
787
|
if (fullPath === '/') return fullPath
|
|
@@ -822,7 +792,7 @@ export const inferTo = (routeNode: RouteNode): string => {
|
|
|
822
792
|
/**
|
|
823
793
|
* Dedupes branches and index routes
|
|
824
794
|
*/
|
|
825
|
-
|
|
795
|
+
const dedupeBranchesAndIndexRoutes = (
|
|
826
796
|
routes: Array<RouteNode>,
|
|
827
797
|
): Array<RouteNode> => {
|
|
828
798
|
return routes.filter((route) => {
|
|
@@ -944,14 +914,6 @@ export function buildImportString(
|
|
|
944
914
|
: ''
|
|
945
915
|
}
|
|
946
916
|
|
|
947
|
-
export function lowerCaseFirstChar(value: string) {
|
|
948
|
-
if (!value[0]) {
|
|
949
|
-
return value
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
return value[0].toLowerCase() + value.slice(1)
|
|
953
|
-
}
|
|
954
|
-
|
|
955
917
|
export function mergeImportDeclarations(
|
|
956
918
|
imports: Array<ImportDeclaration>,
|
|
957
919
|
): Array<ImportDeclaration> {
|
|
@@ -1022,7 +984,7 @@ export function buildFileRoutesByPathInterface(opts: {
|
|
|
1022
984
|
}`
|
|
1023
985
|
}
|
|
1024
986
|
|
|
1025
|
-
|
|
987
|
+
function getImportPath(
|
|
1026
988
|
node: RouteNode,
|
|
1027
989
|
config: Config,
|
|
1028
990
|
generatedRouteTreePath: string,
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
-
//#region src/transform/utils.ts
|
|
3
|
-
var b = require("recast").types.builders;
|
|
4
|
-
function ensureStringArgument(callExpression, value, preferredQuote) {
|
|
5
|
-
const argument = callExpression.arguments[0];
|
|
6
|
-
if (!argument) {
|
|
7
|
-
let stringLiteral;
|
|
8
|
-
if (!preferredQuote) stringLiteral = b.stringLiteral.from({ value });
|
|
9
|
-
else stringLiteral = b.stringLiteral.from({
|
|
10
|
-
value,
|
|
11
|
-
extra: {
|
|
12
|
-
rawValue: value,
|
|
13
|
-
raw: `${preferredQuote}${value}${preferredQuote}`
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
callExpression.arguments.push(stringLiteral);
|
|
17
|
-
return true;
|
|
18
|
-
} else if (argument.type === "StringLiteral") {
|
|
19
|
-
if (argument.value !== value) {
|
|
20
|
-
argument.value = value;
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
} else if (argument.type === "TemplateLiteral") {
|
|
24
|
-
if (argument.quasis.length === 1 && argument.quasis[0] && argument.quasis[0].value.raw !== value) {
|
|
25
|
-
argument.quasis[0].value.raw = value;
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
//#endregion
|
|
32
|
-
exports.ensureStringArgument = ensureStringArgument;
|
|
33
|
-
|
|
34
|
-
//# sourceMappingURL=utils.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","names":[],"sources":["../../../src/transform/utils.ts"],"sourcesContent":["import { types } from 'recast'\n\nconst b = types.builders\n\nexport function ensureStringArgument(\n callExpression: types.namedTypes.CallExpression,\n value: string,\n preferredQuote?: \"'\" | '\"',\n) {\n const argument = callExpression.arguments[0]\n if (!argument) {\n let stringLiteral: types.namedTypes.StringLiteral\n if (!preferredQuote) {\n stringLiteral = b.stringLiteral.from({ value })\n } else {\n stringLiteral = b.stringLiteral.from({\n value,\n extra: {\n rawValue: value,\n raw: `${preferredQuote}${value}${preferredQuote}`,\n },\n })\n }\n callExpression.arguments.push(stringLiteral)\n return true\n } else if (argument.type === 'StringLiteral') {\n if (argument.value !== value) {\n argument.value = value\n return true\n }\n } else if (argument.type === 'TemplateLiteral') {\n if (\n argument.quasis.length === 1 &&\n argument.quasis[0] &&\n argument.quasis[0].value.raw !== value\n ) {\n argument.quasis[0].value.raw = value\n return true\n }\n }\n return false\n}\n"],"mappings":";;AAEA,IAAM,sBAAI,MAAM;AAEhB,SAAgB,qBACd,gBACA,OACA,gBACA;CACA,MAAM,WAAW,eAAe,UAAU;AAC1C,KAAI,CAAC,UAAU;EACb,IAAI;AACJ,MAAI,CAAC,eACH,iBAAgB,EAAE,cAAc,KAAK,EAAE,OAAO,CAAC;MAE/C,iBAAgB,EAAE,cAAc,KAAK;GACnC;GACA,OAAO;IACL,UAAU;IACV,KAAK,GAAG,iBAAiB,QAAQ;IAClC;GACF,CAAC;AAEJ,iBAAe,UAAU,KAAK,cAAc;AAC5C,SAAO;YACE,SAAS,SAAS;MACvB,SAAS,UAAU,OAAO;AAC5B,YAAS,QAAQ;AACjB,UAAO;;YAEA,SAAS,SAAS;MAEzB,SAAS,OAAO,WAAW,KAC3B,SAAS,OAAO,MAChB,SAAS,OAAO,GAAG,MAAM,QAAQ,OACjC;AACA,YAAS,OAAO,GAAG,MAAM,MAAM;AAC/B,UAAO;;;AAGX,QAAO"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { types } from "recast";
|
|
2
|
-
//#region src/transform/utils.ts
|
|
3
|
-
var b = types.builders;
|
|
4
|
-
function ensureStringArgument(callExpression, value, preferredQuote) {
|
|
5
|
-
const argument = callExpression.arguments[0];
|
|
6
|
-
if (!argument) {
|
|
7
|
-
let stringLiteral;
|
|
8
|
-
if (!preferredQuote) stringLiteral = b.stringLiteral.from({ value });
|
|
9
|
-
else stringLiteral = b.stringLiteral.from({
|
|
10
|
-
value,
|
|
11
|
-
extra: {
|
|
12
|
-
rawValue: value,
|
|
13
|
-
raw: `${preferredQuote}${value}${preferredQuote}`
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
callExpression.arguments.push(stringLiteral);
|
|
17
|
-
return true;
|
|
18
|
-
} else if (argument.type === "StringLiteral") {
|
|
19
|
-
if (argument.value !== value) {
|
|
20
|
-
argument.value = value;
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
} else if (argument.type === "TemplateLiteral") {
|
|
24
|
-
if (argument.quasis.length === 1 && argument.quasis[0] && argument.quasis[0].value.raw !== value) {
|
|
25
|
-
argument.quasis[0].value.raw = value;
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
//#endregion
|
|
32
|
-
export { ensureStringArgument };
|
|
33
|
-
|
|
34
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["../../../src/transform/utils.ts"],"sourcesContent":["import { types } from 'recast'\n\nconst b = types.builders\n\nexport function ensureStringArgument(\n callExpression: types.namedTypes.CallExpression,\n value: string,\n preferredQuote?: \"'\" | '\"',\n) {\n const argument = callExpression.arguments[0]\n if (!argument) {\n let stringLiteral: types.namedTypes.StringLiteral\n if (!preferredQuote) {\n stringLiteral = b.stringLiteral.from({ value })\n } else {\n stringLiteral = b.stringLiteral.from({\n value,\n extra: {\n rawValue: value,\n raw: `${preferredQuote}${value}${preferredQuote}`,\n },\n })\n }\n callExpression.arguments.push(stringLiteral)\n return true\n } else if (argument.type === 'StringLiteral') {\n if (argument.value !== value) {\n argument.value = value\n return true\n }\n } else if (argument.type === 'TemplateLiteral') {\n if (\n argument.quasis.length === 1 &&\n argument.quasis[0] &&\n argument.quasis[0].value.raw !== value\n ) {\n argument.quasis[0].value.raw = value\n return true\n }\n }\n return false\n}\n"],"mappings":";;AAEA,IAAM,IAAI,MAAM;AAEhB,SAAgB,qBACd,gBACA,OACA,gBACA;CACA,MAAM,WAAW,eAAe,UAAU;AAC1C,KAAI,CAAC,UAAU;EACb,IAAI;AACJ,MAAI,CAAC,eACH,iBAAgB,EAAE,cAAc,KAAK,EAAE,OAAO,CAAC;MAE/C,iBAAgB,EAAE,cAAc,KAAK;GACnC;GACA,OAAO;IACL,UAAU;IACV,KAAK,GAAG,iBAAiB,QAAQ;IAClC;GACF,CAAC;AAEJ,iBAAe,UAAU,KAAK,cAAc;AAC5C,SAAO;YACE,SAAS,SAAS;MACvB,SAAS,UAAU,OAAO;AAC5B,YAAS,QAAQ;AACjB,UAAO;;YAEA,SAAS,SAAS;MAEzB,SAAS,OAAO,WAAW,KAC3B,SAAS,OAAO,MAChB,SAAS,OAAO,GAAG,MAAM,QAAQ,OACjC;AACA,YAAS,OAAO,GAAG,MAAM,MAAM;AAC/B,UAAO;;;AAGX,QAAO"}
|
package/src/transform/utils.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { types } from 'recast'
|
|
2
|
-
|
|
3
|
-
const b = types.builders
|
|
4
|
-
|
|
5
|
-
export function ensureStringArgument(
|
|
6
|
-
callExpression: types.namedTypes.CallExpression,
|
|
7
|
-
value: string,
|
|
8
|
-
preferredQuote?: "'" | '"',
|
|
9
|
-
) {
|
|
10
|
-
const argument = callExpression.arguments[0]
|
|
11
|
-
if (!argument) {
|
|
12
|
-
let stringLiteral: types.namedTypes.StringLiteral
|
|
13
|
-
if (!preferredQuote) {
|
|
14
|
-
stringLiteral = b.stringLiteral.from({ value })
|
|
15
|
-
} else {
|
|
16
|
-
stringLiteral = b.stringLiteral.from({
|
|
17
|
-
value,
|
|
18
|
-
extra: {
|
|
19
|
-
rawValue: value,
|
|
20
|
-
raw: `${preferredQuote}${value}${preferredQuote}`,
|
|
21
|
-
},
|
|
22
|
-
})
|
|
23
|
-
}
|
|
24
|
-
callExpression.arguments.push(stringLiteral)
|
|
25
|
-
return true
|
|
26
|
-
} else if (argument.type === 'StringLiteral') {
|
|
27
|
-
if (argument.value !== value) {
|
|
28
|
-
argument.value = value
|
|
29
|
-
return true
|
|
30
|
-
}
|
|
31
|
-
} else if (argument.type === 'TemplateLiteral') {
|
|
32
|
-
if (
|
|
33
|
-
argument.quasis.length === 1 &&
|
|
34
|
-
argument.quasis[0] &&
|
|
35
|
-
argument.quasis[0].value.raw !== value
|
|
36
|
-
) {
|
|
37
|
-
argument.quasis[0].value.raw = value
|
|
38
|
-
return true
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return false
|
|
42
|
-
}
|