@tanstack/router-plugin 1.121.0-alpha.2 → 1.121.0-alpha.26
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/core/config.cjs.map +1 -1
- package/dist/cjs/core/config.d.cts +10 -4
- package/dist/cjs/core/route-hmr-statement.cjs +1 -1
- package/dist/cjs/core/route-hmr-statement.cjs.map +1 -1
- package/dist/cjs/core/router-generator-plugin.cjs +35 -47
- package/dist/cjs/core/router-generator-plugin.cjs.map +1 -1
- package/dist/cjs/esbuild.d.cts +8 -4
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +2 -2
- package/dist/cjs/rspack.d.cts +8 -4
- package/dist/cjs/vite.cjs +11 -8
- package/dist/cjs/vite.cjs.map +1 -1
- package/dist/cjs/vite.d.cts +53 -13
- package/dist/cjs/webpack.d.cts +8 -4
- package/dist/esm/core/config.d.ts +10 -4
- package/dist/esm/core/config.js.map +1 -1
- package/dist/esm/core/route-hmr-statement.js +1 -1
- package/dist/esm/core/route-hmr-statement.js.map +1 -1
- package/dist/esm/core/router-generator-plugin.js +37 -49
- package/dist/esm/core/router-generator-plugin.js.map +1 -1
- package/dist/esm/esbuild.d.ts +8 -4
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -1
- package/dist/esm/rspack.d.ts +8 -4
- package/dist/esm/vite.d.ts +53 -13
- package/dist/esm/vite.js +12 -9
- package/dist/esm/vite.js.map +1 -1
- package/dist/esm/webpack.d.ts +8 -4
- package/package.json +10 -8
- package/src/core/config.ts +2 -0
- package/src/core/route-hmr-statement.ts +1 -1
- package/src/core/router-generator-plugin.ts +39 -63
- package/src/index.ts +2 -2
- package/src/vite.ts +20 -13
package/dist/esm/rspack.d.ts
CHANGED
|
@@ -25,9 +25,9 @@ declare const TanStackRouterGeneratorRspack: (options?: Partial<{
|
|
|
25
25
|
generatedRouteTree: string;
|
|
26
26
|
disableTypes: boolean;
|
|
27
27
|
addExtensions: boolean;
|
|
28
|
-
disableManifestGeneration: boolean;
|
|
29
28
|
enableRouteTreeFormatting: boolean;
|
|
30
29
|
routeTreeFileFooter: string[];
|
|
30
|
+
tmpDir: string;
|
|
31
31
|
enableRouteGeneration?: boolean | undefined;
|
|
32
32
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
33
33
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -43,6 +43,7 @@ declare const TanStackRouterGeneratorRspack: (options?: Partial<{
|
|
|
43
43
|
experimental?: {
|
|
44
44
|
enableCodeSplitting?: boolean | undefined;
|
|
45
45
|
} | undefined;
|
|
46
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
46
47
|
}> | undefined) => import('unplugin').RspackPluginInstance;
|
|
47
48
|
/**
|
|
48
49
|
* @example
|
|
@@ -70,9 +71,9 @@ declare const TanStackRouterCodeSplitterRspack: (options?: Partial<{
|
|
|
70
71
|
generatedRouteTree: string;
|
|
71
72
|
disableTypes: boolean;
|
|
72
73
|
addExtensions: boolean;
|
|
73
|
-
disableManifestGeneration: boolean;
|
|
74
74
|
enableRouteTreeFormatting: boolean;
|
|
75
75
|
routeTreeFileFooter: string[];
|
|
76
|
+
tmpDir: string;
|
|
76
77
|
enableRouteGeneration?: boolean | undefined;
|
|
77
78
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
78
79
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -88,6 +89,7 @@ declare const TanStackRouterCodeSplitterRspack: (options?: Partial<{
|
|
|
88
89
|
experimental?: {
|
|
89
90
|
enableCodeSplitting?: boolean | undefined;
|
|
90
91
|
} | undefined;
|
|
92
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
91
93
|
}> | undefined) => import('unplugin').RspackPluginInstance;
|
|
92
94
|
/**
|
|
93
95
|
* @example
|
|
@@ -115,9 +117,9 @@ declare const TanStackRouterRspack: (options?: Partial<{
|
|
|
115
117
|
generatedRouteTree: string;
|
|
116
118
|
disableTypes: boolean;
|
|
117
119
|
addExtensions: boolean;
|
|
118
|
-
disableManifestGeneration: boolean;
|
|
119
120
|
enableRouteTreeFormatting: boolean;
|
|
120
121
|
routeTreeFileFooter: string[];
|
|
122
|
+
tmpDir: string;
|
|
121
123
|
enableRouteGeneration?: boolean | undefined;
|
|
122
124
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
123
125
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -133,6 +135,7 @@ declare const TanStackRouterRspack: (options?: Partial<{
|
|
|
133
135
|
experimental?: {
|
|
134
136
|
enableCodeSplitting?: boolean | undefined;
|
|
135
137
|
} | undefined;
|
|
138
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
136
139
|
}> | undefined) => import('unplugin').RspackPluginInstance;
|
|
137
140
|
declare const tanstackRouter: (options?: Partial<{
|
|
138
141
|
target: "react" | "solid";
|
|
@@ -147,9 +150,9 @@ declare const tanstackRouter: (options?: Partial<{
|
|
|
147
150
|
generatedRouteTree: string;
|
|
148
151
|
disableTypes: boolean;
|
|
149
152
|
addExtensions: boolean;
|
|
150
|
-
disableManifestGeneration: boolean;
|
|
151
153
|
enableRouteTreeFormatting: boolean;
|
|
152
154
|
routeTreeFileFooter: string[];
|
|
155
|
+
tmpDir: string;
|
|
153
156
|
enableRouteGeneration?: boolean | undefined;
|
|
154
157
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
155
158
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -165,6 +168,7 @@ declare const tanstackRouter: (options?: Partial<{
|
|
|
165
168
|
experimental?: {
|
|
166
169
|
enableCodeSplitting?: boolean | undefined;
|
|
167
170
|
} | undefined;
|
|
171
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
168
172
|
}> | undefined) => import('unplugin').RspackPluginInstance;
|
|
169
173
|
export default TanStackRouterRspack;
|
|
170
174
|
export { configSchema, TanStackRouterRspack, TanStackRouterGeneratorRspack, TanStackRouterCodeSplitterRspack, tanstackRouter, };
|
package/dist/esm/vite.d.ts
CHANGED
|
@@ -1,14 +1,47 @@
|
|
|
1
1
|
import { configSchema, Config } from './core/config.js';
|
|
2
|
+
declare const tanstackRouterAutoImport: (options?: Partial<{
|
|
3
|
+
target: "react" | "solid";
|
|
4
|
+
routeFileIgnorePrefix: string;
|
|
5
|
+
routesDirectory: string;
|
|
6
|
+
quoteStyle: "single" | "double";
|
|
7
|
+
semicolons: boolean;
|
|
8
|
+
disableLogging: boolean;
|
|
9
|
+
routeTreeFileHeader: string[];
|
|
10
|
+
indexToken: string;
|
|
11
|
+
routeToken: string;
|
|
12
|
+
generatedRouteTree: string;
|
|
13
|
+
disableTypes: boolean;
|
|
14
|
+
addExtensions: boolean;
|
|
15
|
+
enableRouteTreeFormatting: boolean;
|
|
16
|
+
routeTreeFileFooter: string[];
|
|
17
|
+
tmpDir: string;
|
|
18
|
+
enableRouteGeneration?: boolean | undefined;
|
|
19
|
+
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
20
|
+
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
21
|
+
routeFilePrefix?: string | undefined;
|
|
22
|
+
routeFileIgnorePattern?: string | undefined;
|
|
23
|
+
pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
|
|
24
|
+
verboseFileRoutes?: boolean | undefined;
|
|
25
|
+
autoCodeSplitting?: boolean | undefined;
|
|
26
|
+
customScaffolding?: {
|
|
27
|
+
routeTemplate?: string | undefined;
|
|
28
|
+
lazyRouteTemplate?: string | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
experimental?: {
|
|
31
|
+
enableCodeSplitting?: boolean | undefined;
|
|
32
|
+
} | undefined;
|
|
33
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
34
|
+
}> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
|
|
2
35
|
/**
|
|
3
36
|
* @example
|
|
4
37
|
* ```ts
|
|
5
38
|
* export default defineConfig({
|
|
6
|
-
* plugins: [
|
|
39
|
+
* plugins: [tanstackRouterGenerator()],
|
|
7
40
|
* // ...
|
|
8
41
|
* })
|
|
9
42
|
* ```
|
|
10
43
|
*/
|
|
11
|
-
declare const
|
|
44
|
+
declare const tanstackRouterGenerator: (options?: Partial<{
|
|
12
45
|
target: "react" | "solid";
|
|
13
46
|
routeFileIgnorePrefix: string;
|
|
14
47
|
routesDirectory: string;
|
|
@@ -21,9 +54,9 @@ declare const TanStackRouterGeneratorVite: (options?: Partial<{
|
|
|
21
54
|
generatedRouteTree: string;
|
|
22
55
|
disableTypes: boolean;
|
|
23
56
|
addExtensions: boolean;
|
|
24
|
-
disableManifestGeneration: boolean;
|
|
25
57
|
enableRouteTreeFormatting: boolean;
|
|
26
58
|
routeTreeFileFooter: string[];
|
|
59
|
+
tmpDir: string;
|
|
27
60
|
enableRouteGeneration?: boolean | undefined;
|
|
28
61
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
29
62
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -39,17 +72,18 @@ declare const TanStackRouterGeneratorVite: (options?: Partial<{
|
|
|
39
72
|
experimental?: {
|
|
40
73
|
enableCodeSplitting?: boolean | undefined;
|
|
41
74
|
} | undefined;
|
|
75
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
42
76
|
}> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
|
|
43
77
|
/**
|
|
44
78
|
* @example
|
|
45
79
|
* ```ts
|
|
46
80
|
* export default defineConfig({
|
|
47
|
-
* plugins: [
|
|
81
|
+
* plugins: [tanStackRouterCodeSplitter()],
|
|
48
82
|
* // ...
|
|
49
83
|
* })
|
|
50
84
|
* ```
|
|
51
85
|
*/
|
|
52
|
-
declare const
|
|
86
|
+
declare const tanStackRouterCodeSplitter: (options?: Partial<{
|
|
53
87
|
target: "react" | "solid";
|
|
54
88
|
routeFileIgnorePrefix: string;
|
|
55
89
|
routesDirectory: string;
|
|
@@ -62,9 +96,9 @@ declare const TanStackRouterCodeSplitterVite: (options?: Partial<{
|
|
|
62
96
|
generatedRouteTree: string;
|
|
63
97
|
disableTypes: boolean;
|
|
64
98
|
addExtensions: boolean;
|
|
65
|
-
disableManifestGeneration: boolean;
|
|
66
99
|
enableRouteTreeFormatting: boolean;
|
|
67
100
|
routeTreeFileFooter: string[];
|
|
101
|
+
tmpDir: string;
|
|
68
102
|
enableRouteGeneration?: boolean | undefined;
|
|
69
103
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
70
104
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -80,17 +114,18 @@ declare const TanStackRouterCodeSplitterVite: (options?: Partial<{
|
|
|
80
114
|
experimental?: {
|
|
81
115
|
enableCodeSplitting?: boolean | undefined;
|
|
82
116
|
} | undefined;
|
|
117
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
83
118
|
}> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
|
|
84
119
|
/**
|
|
85
120
|
* @example
|
|
86
121
|
* ```ts
|
|
87
122
|
* export default defineConfig({
|
|
88
|
-
* plugins: [
|
|
123
|
+
* plugins: [tanstackRouter()],
|
|
89
124
|
* // ...
|
|
90
125
|
* })
|
|
91
126
|
* ```
|
|
92
127
|
*/
|
|
93
|
-
declare const
|
|
128
|
+
declare const tanstackRouter: (options?: Partial<{
|
|
94
129
|
target: "react" | "solid";
|
|
95
130
|
routeFileIgnorePrefix: string;
|
|
96
131
|
routesDirectory: string;
|
|
@@ -103,9 +138,9 @@ declare const TanStackRouterVite: (options?: Partial<{
|
|
|
103
138
|
generatedRouteTree: string;
|
|
104
139
|
disableTypes: boolean;
|
|
105
140
|
addExtensions: boolean;
|
|
106
|
-
disableManifestGeneration: boolean;
|
|
107
141
|
enableRouteTreeFormatting: boolean;
|
|
108
142
|
routeTreeFileFooter: string[];
|
|
143
|
+
tmpDir: string;
|
|
109
144
|
enableRouteGeneration?: boolean | undefined;
|
|
110
145
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
111
146
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -121,8 +156,12 @@ declare const TanStackRouterVite: (options?: Partial<{
|
|
|
121
156
|
experimental?: {
|
|
122
157
|
enableCodeSplitting?: boolean | undefined;
|
|
123
158
|
} | undefined;
|
|
159
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
124
160
|
}> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
|
|
125
|
-
|
|
161
|
+
/**
|
|
162
|
+
* @deprecated Use `tanstackRouter` instead.
|
|
163
|
+
*/
|
|
164
|
+
declare const TanStackRouterVite: (options?: Partial<{
|
|
126
165
|
target: "react" | "solid";
|
|
127
166
|
routeFileIgnorePrefix: string;
|
|
128
167
|
routesDirectory: string;
|
|
@@ -135,9 +174,9 @@ declare const tanstackRouter: (options?: Partial<{
|
|
|
135
174
|
generatedRouteTree: string;
|
|
136
175
|
disableTypes: boolean;
|
|
137
176
|
addExtensions: boolean;
|
|
138
|
-
disableManifestGeneration: boolean;
|
|
139
177
|
enableRouteTreeFormatting: boolean;
|
|
140
178
|
routeTreeFileFooter: string[];
|
|
179
|
+
tmpDir: string;
|
|
141
180
|
enableRouteGeneration?: boolean | undefined;
|
|
142
181
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
143
182
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -153,7 +192,8 @@ declare const tanstackRouter: (options?: Partial<{
|
|
|
153
192
|
experimental?: {
|
|
154
193
|
enableCodeSplitting?: boolean | undefined;
|
|
155
194
|
} | undefined;
|
|
195
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
156
196
|
}> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
|
|
157
|
-
export default
|
|
158
|
-
export { configSchema,
|
|
197
|
+
export default tanstackRouter;
|
|
198
|
+
export { configSchema, tanstackRouterAutoImport, tanStackRouterCodeSplitter, tanstackRouterGenerator, TanStackRouterVite, tanstackRouter, };
|
|
159
199
|
export type { Config };
|
package/dist/esm/vite.js
CHANGED
|
@@ -3,20 +3,23 @@ import { configSchema } from "./core/config.js";
|
|
|
3
3
|
import { unpluginRouterCodeSplitterFactory } from "./core/router-code-splitter-plugin.js";
|
|
4
4
|
import { unpluginRouterGeneratorFactory } from "./core/router-generator-plugin.js";
|
|
5
5
|
import { unpluginRouterComposedFactory } from "./core/router-composed-plugin.js";
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { unpluginRouteAutoImportFactory } from "./core/route-autoimport-plugin.js";
|
|
7
|
+
const tanstackRouterAutoImport = createVitePlugin(
|
|
8
|
+
unpluginRouteAutoImportFactory
|
|
8
9
|
);
|
|
9
|
-
const
|
|
10
|
+
const tanstackRouterGenerator = createVitePlugin(unpluginRouterGeneratorFactory);
|
|
11
|
+
const tanStackRouterCodeSplitter = createVitePlugin(
|
|
10
12
|
unpluginRouterCodeSplitterFactory
|
|
11
13
|
);
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
+
const tanstackRouter = createVitePlugin(unpluginRouterComposedFactory);
|
|
15
|
+
const TanStackRouterVite = tanstackRouter;
|
|
14
16
|
export {
|
|
15
|
-
TanStackRouterCodeSplitterVite,
|
|
16
|
-
TanStackRouterGeneratorVite,
|
|
17
17
|
TanStackRouterVite,
|
|
18
18
|
configSchema,
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
tanstackRouter as default,
|
|
20
|
+
tanStackRouterCodeSplitter,
|
|
21
|
+
tanstackRouter,
|
|
22
|
+
tanstackRouterAutoImport,
|
|
23
|
+
tanstackRouterGenerator
|
|
21
24
|
};
|
|
22
25
|
//# sourceMappingURL=vite.js.map
|
package/dist/esm/vite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.js","sources":["../../src/vite.ts"],"sourcesContent":["import { createVitePlugin } from 'unplugin'\n\nimport { configSchema } from './core/config'\nimport { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin'\nimport { unpluginRouterGeneratorFactory } from './core/router-generator-plugin'\nimport { unpluginRouterComposedFactory } from './core/router-composed-plugin'\
|
|
1
|
+
{"version":3,"file":"vite.js","sources":["../../src/vite.ts"],"sourcesContent":["import { createVitePlugin } from 'unplugin'\n\nimport { configSchema } from './core/config'\nimport { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin'\nimport { unpluginRouterGeneratorFactory } from './core/router-generator-plugin'\nimport { unpluginRouterComposedFactory } from './core/router-composed-plugin'\nimport { unpluginRouteAutoImportFactory } from './core/route-autoimport-plugin'\nimport type { Config } from './core/config'\n\nconst tanstackRouterAutoImport = createVitePlugin(\n unpluginRouteAutoImportFactory,\n)\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [tanstackRouterGenerator()],\n * // ...\n * })\n * ```\n */\nconst tanstackRouterGenerator = createVitePlugin(unpluginRouterGeneratorFactory)\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [tanStackRouterCodeSplitter()],\n * // ...\n * })\n * ```\n */\nconst tanStackRouterCodeSplitter = createVitePlugin(\n unpluginRouterCodeSplitterFactory,\n)\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [tanstackRouter()],\n * // ...\n * })\n * ```\n */\nconst tanstackRouter = createVitePlugin(unpluginRouterComposedFactory)\n\n/**\n * @deprecated Use `tanstackRouter` instead.\n */\nconst TanStackRouterVite = tanstackRouter\n\nexport default tanstackRouter\nexport {\n configSchema,\n tanstackRouterAutoImport,\n tanStackRouterCodeSplitter,\n tanstackRouterGenerator,\n TanStackRouterVite,\n tanstackRouter,\n}\n\nexport type { Config }\n"],"names":[],"mappings":";;;;;;AASA,MAAM,2BAA2B;AAAA,EAC/B;AACF;AAWM,MAAA,0BAA0B,iBAAiB,8BAA8B;AAW/E,MAAM,6BAA6B;AAAA,EACjC;AACF;AAWM,MAAA,iBAAiB,iBAAiB,6BAA6B;AAKrE,MAAM,qBAAqB;"}
|
package/dist/esm/webpack.d.ts
CHANGED
|
@@ -21,9 +21,9 @@ declare const TanStackRouterGeneratorWebpack: (options?: Partial<{
|
|
|
21
21
|
generatedRouteTree: string;
|
|
22
22
|
disableTypes: boolean;
|
|
23
23
|
addExtensions: boolean;
|
|
24
|
-
disableManifestGeneration: boolean;
|
|
25
24
|
enableRouteTreeFormatting: boolean;
|
|
26
25
|
routeTreeFileFooter: string[];
|
|
26
|
+
tmpDir: string;
|
|
27
27
|
enableRouteGeneration?: boolean | undefined;
|
|
28
28
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
29
29
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -39,6 +39,7 @@ declare const TanStackRouterGeneratorWebpack: (options?: Partial<{
|
|
|
39
39
|
experimental?: {
|
|
40
40
|
enableCodeSplitting?: boolean | undefined;
|
|
41
41
|
} | undefined;
|
|
42
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
42
43
|
}> | undefined) => import('unplugin').WebpackPluginInstance;
|
|
43
44
|
/**
|
|
44
45
|
* @example
|
|
@@ -62,9 +63,9 @@ declare const TanStackRouterCodeSplitterWebpack: (options?: Partial<{
|
|
|
62
63
|
generatedRouteTree: string;
|
|
63
64
|
disableTypes: boolean;
|
|
64
65
|
addExtensions: boolean;
|
|
65
|
-
disableManifestGeneration: boolean;
|
|
66
66
|
enableRouteTreeFormatting: boolean;
|
|
67
67
|
routeTreeFileFooter: string[];
|
|
68
|
+
tmpDir: string;
|
|
68
69
|
enableRouteGeneration?: boolean | undefined;
|
|
69
70
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
70
71
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -80,6 +81,7 @@ declare const TanStackRouterCodeSplitterWebpack: (options?: Partial<{
|
|
|
80
81
|
experimental?: {
|
|
81
82
|
enableCodeSplitting?: boolean | undefined;
|
|
82
83
|
} | undefined;
|
|
84
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
83
85
|
}> | undefined) => import('unplugin').WebpackPluginInstance;
|
|
84
86
|
/**
|
|
85
87
|
* @example
|
|
@@ -103,9 +105,9 @@ declare const TanStackRouterWebpack: (options?: Partial<{
|
|
|
103
105
|
generatedRouteTree: string;
|
|
104
106
|
disableTypes: boolean;
|
|
105
107
|
addExtensions: boolean;
|
|
106
|
-
disableManifestGeneration: boolean;
|
|
107
108
|
enableRouteTreeFormatting: boolean;
|
|
108
109
|
routeTreeFileFooter: string[];
|
|
110
|
+
tmpDir: string;
|
|
109
111
|
enableRouteGeneration?: boolean | undefined;
|
|
110
112
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
111
113
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -121,6 +123,7 @@ declare const TanStackRouterWebpack: (options?: Partial<{
|
|
|
121
123
|
experimental?: {
|
|
122
124
|
enableCodeSplitting?: boolean | undefined;
|
|
123
125
|
} | undefined;
|
|
126
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
124
127
|
}> | undefined) => import('unplugin').WebpackPluginInstance;
|
|
125
128
|
declare const tanstackRouter: (options?: Partial<{
|
|
126
129
|
target: "react" | "solid";
|
|
@@ -135,9 +138,9 @@ declare const tanstackRouter: (options?: Partial<{
|
|
|
135
138
|
generatedRouteTree: string;
|
|
136
139
|
disableTypes: boolean;
|
|
137
140
|
addExtensions: boolean;
|
|
138
|
-
disableManifestGeneration: boolean;
|
|
139
141
|
enableRouteTreeFormatting: boolean;
|
|
140
142
|
routeTreeFileFooter: string[];
|
|
143
|
+
tmpDir: string;
|
|
141
144
|
enableRouteGeneration?: boolean | undefined;
|
|
142
145
|
codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
|
|
143
146
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
@@ -153,6 +156,7 @@ declare const tanstackRouter: (options?: Partial<{
|
|
|
153
156
|
experimental?: {
|
|
154
157
|
enableCodeSplitting?: boolean | undefined;
|
|
155
158
|
} | undefined;
|
|
159
|
+
plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
|
|
156
160
|
}> | undefined) => import('unplugin').WebpackPluginInstance;
|
|
157
161
|
export default TanStackRouterWebpack;
|
|
158
162
|
export { configSchema, TanStackRouterWebpack, TanStackRouterGeneratorWebpack, TanStackRouterCodeSplitterWebpack, tanstackRouter, };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/router-plugin",
|
|
3
|
-
"version": "1.121.0-alpha.
|
|
3
|
+
"version": "1.121.0-alpha.26",
|
|
4
4
|
"description": "Modern and scalable routing for React applications",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -93,24 +93,26 @@
|
|
|
93
93
|
"@babel/template": "^7.26.8",
|
|
94
94
|
"@babel/traverse": "^7.26.8",
|
|
95
95
|
"@babel/types": "^7.26.8",
|
|
96
|
-
"@types/babel__core": "^7.20.5",
|
|
97
|
-
"@types/babel__template": "^7.4.4",
|
|
98
|
-
"@types/babel__traverse": "^7.20.6",
|
|
99
96
|
"babel-dead-code-elimination": "^1.0.10",
|
|
100
97
|
"chokidar": "^3.6.0",
|
|
101
98
|
"unplugin": "^2.1.2",
|
|
102
99
|
"zod": "^3.24.2",
|
|
103
|
-
"@tanstack/router-
|
|
104
|
-
"@tanstack/router-
|
|
105
|
-
"@tanstack/router-
|
|
100
|
+
"@tanstack/router-generator": "^1.121.0-alpha.26",
|
|
101
|
+
"@tanstack/router-utils": "^1.121.0-alpha.26",
|
|
102
|
+
"@tanstack/router-core": "^1.121.0-alpha.22",
|
|
106
103
|
"@tanstack/virtual-file-routes": "^1.121.0-alpha.1"
|
|
107
104
|
},
|
|
105
|
+
"devDependencies": {
|
|
106
|
+
"@types/babel__core": "^7.20.5",
|
|
107
|
+
"@types/babel__template": "^7.4.4",
|
|
108
|
+
"@types/babel__traverse": "^7.20.6"
|
|
109
|
+
},
|
|
108
110
|
"peerDependencies": {
|
|
109
111
|
"@rsbuild/core": ">=1.0.2",
|
|
110
112
|
"vite": ">=5.0.0 || >=6.0.0",
|
|
111
113
|
"vite-plugin-solid": "^2.11.2",
|
|
112
114
|
"webpack": ">=5.92.0",
|
|
113
|
-
"@tanstack/react-router": "^1.121.0-alpha.
|
|
115
|
+
"@tanstack/react-router": "^1.121.0-alpha.22"
|
|
114
116
|
},
|
|
115
117
|
"peerDependenciesMeta": {
|
|
116
118
|
"@rsbuild/core": {
|
package/src/core/config.ts
CHANGED
|
@@ -4,7 +4,7 @@ export const routeHmrStatement = template.statement(
|
|
|
4
4
|
`
|
|
5
5
|
if (import.meta.hot) {
|
|
6
6
|
import.meta.hot.accept((newModule) => {
|
|
7
|
-
if (newModule.Route && typeof newModule.Route.clone === 'function') {
|
|
7
|
+
if (newModule && newModule.Route && typeof newModule.Route.clone === 'function') {
|
|
8
8
|
newModule.Route.clone(Route)
|
|
9
9
|
}
|
|
10
10
|
})
|
|
@@ -1,45 +1,44 @@
|
|
|
1
|
-
import { isAbsolute, join, normalize
|
|
2
|
-
import {
|
|
1
|
+
import { isAbsolute, join, normalize } from 'node:path'
|
|
2
|
+
import { Generator, resolveConfigPath } from '@tanstack/router-generator'
|
|
3
3
|
|
|
4
4
|
import { getConfig } from './config'
|
|
5
5
|
import type { FSWatcher } from 'chokidar'
|
|
6
6
|
import type { UnpluginFactory } from 'unplugin'
|
|
7
7
|
import type { Config } from './config'
|
|
8
8
|
|
|
9
|
-
let lock = false
|
|
10
|
-
const checkLock = () => lock
|
|
11
|
-
const setLock = (bool: boolean) => {
|
|
12
|
-
lock = bool
|
|
13
|
-
}
|
|
14
|
-
|
|
15
9
|
const PLUGIN_NAME = 'unplugin:router-generator'
|
|
16
10
|
|
|
17
11
|
export const unpluginRouterGeneratorFactory: UnpluginFactory<
|
|
18
12
|
Partial<Config> | undefined
|
|
19
13
|
> = (options = {}) => {
|
|
20
|
-
|
|
14
|
+
const ROOT: string = process.cwd()
|
|
21
15
|
let userConfig = options as Config
|
|
16
|
+
let generator: Generator
|
|
22
17
|
|
|
18
|
+
const routeGenerationDisabled = () =>
|
|
19
|
+
userConfig.enableRouteGeneration === false
|
|
23
20
|
const getRoutesDirectoryPath = () => {
|
|
24
21
|
return isAbsolute(userConfig.routesDirectory)
|
|
25
22
|
? userConfig.routesDirectory
|
|
26
23
|
: join(ROOT, userConfig.routesDirectory)
|
|
27
24
|
}
|
|
28
25
|
|
|
26
|
+
const initConfigAndGenerator = () => {
|
|
27
|
+
userConfig = getConfig(options, ROOT)
|
|
28
|
+
generator = new Generator({
|
|
29
|
+
config: userConfig,
|
|
30
|
+
root: ROOT,
|
|
31
|
+
})
|
|
32
|
+
}
|
|
33
|
+
|
|
29
34
|
const generate = async () => {
|
|
30
|
-
if (
|
|
35
|
+
if (routeGenerationDisabled()) {
|
|
31
36
|
return
|
|
32
37
|
}
|
|
33
|
-
|
|
34
|
-
setLock(true)
|
|
35
|
-
|
|
36
38
|
try {
|
|
37
|
-
await generator
|
|
38
|
-
} catch (
|
|
39
|
-
console.error(
|
|
40
|
-
console.info()
|
|
41
|
-
} finally {
|
|
42
|
-
setLock(false)
|
|
39
|
+
await generator.run()
|
|
40
|
+
} catch (e) {
|
|
41
|
+
console.error(e)
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
|
|
@@ -50,45 +49,30 @@ export const unpluginRouterGeneratorFactory: UnpluginFactory<
|
|
|
50
49
|
const filePath = normalize(file)
|
|
51
50
|
|
|
52
51
|
if (filePath === resolveConfigPath({ configDirectory: ROOT })) {
|
|
53
|
-
|
|
54
|
-
return
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (
|
|
58
|
-
event === 'update' &&
|
|
59
|
-
filePath === resolve(userConfig.generatedRouteTree)
|
|
60
|
-
) {
|
|
61
|
-
// skip generating routes if the generated route tree is updated
|
|
52
|
+
initConfigAndGenerator()
|
|
62
53
|
return
|
|
63
54
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const run: (cb: () => Promise<void> | void) => Promise<void> = async (cb) => {
|
|
72
|
-
if (userConfig.enableRouteGeneration ?? true) {
|
|
73
|
-
await cb()
|
|
55
|
+
try {
|
|
56
|
+
await generator.run({ path: filePath, type: event })
|
|
57
|
+
} catch (e) {
|
|
58
|
+
console.error(e)
|
|
74
59
|
}
|
|
75
60
|
}
|
|
76
61
|
|
|
77
62
|
return {
|
|
78
63
|
name: 'router-generator-plugin',
|
|
64
|
+
enforce: 'pre',
|
|
79
65
|
async watchChange(id, { event }) {
|
|
80
|
-
|
|
66
|
+
if (!routeGenerationDisabled()) {
|
|
81
67
|
await handleFile(id, event)
|
|
82
|
-
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
async buildStart() {
|
|
71
|
+
await generate()
|
|
83
72
|
},
|
|
84
73
|
vite: {
|
|
85
|
-
configResolved(
|
|
86
|
-
|
|
87
|
-
userConfig = getConfig(options, ROOT)
|
|
88
|
-
|
|
89
|
-
// if (config.command === 'serve') {
|
|
90
|
-
// await run(generate)
|
|
91
|
-
// }
|
|
74
|
+
configResolved() {
|
|
75
|
+
initConfigAndGenerator()
|
|
92
76
|
},
|
|
93
77
|
async buildStart() {
|
|
94
78
|
if (this.environment.config.consumer === 'server') {
|
|
@@ -96,18 +80,16 @@ export const unpluginRouterGeneratorFactory: UnpluginFactory<
|
|
|
96
80
|
// for the client environment
|
|
97
81
|
return
|
|
98
82
|
}
|
|
99
|
-
await
|
|
83
|
+
await generate()
|
|
100
84
|
},
|
|
101
85
|
sharedDuringBuild: true,
|
|
102
86
|
},
|
|
103
87
|
rspack(compiler) {
|
|
104
|
-
|
|
88
|
+
initConfigAndGenerator()
|
|
105
89
|
|
|
106
90
|
let handle: FSWatcher | null = null
|
|
107
91
|
|
|
108
|
-
compiler.hooks.beforeRun.tapPromise(PLUGIN_NAME,
|
|
109
|
-
await run(generate)
|
|
110
|
-
})
|
|
92
|
+
compiler.hooks.beforeRun.tapPromise(PLUGIN_NAME, generate)
|
|
111
93
|
|
|
112
94
|
compiler.hooks.watchRun.tapPromise(PLUGIN_NAME, async () => {
|
|
113
95
|
if (handle) {
|
|
@@ -119,11 +101,9 @@ export const unpluginRouterGeneratorFactory: UnpluginFactory<
|
|
|
119
101
|
const chokidar = await import('chokidar')
|
|
120
102
|
handle = chokidar
|
|
121
103
|
.watch(routesDirectoryPath, { ignoreInitial: true })
|
|
122
|
-
.on('add',
|
|
123
|
-
await run(generate)
|
|
124
|
-
})
|
|
104
|
+
.on('add', generate)
|
|
125
105
|
|
|
126
|
-
await
|
|
106
|
+
await generate()
|
|
127
107
|
})
|
|
128
108
|
|
|
129
109
|
compiler.hooks.watchClose.tap(PLUGIN_NAME, async () => {
|
|
@@ -137,9 +117,7 @@ export const unpluginRouterGeneratorFactory: UnpluginFactory<
|
|
|
137
117
|
|
|
138
118
|
let handle: FSWatcher | null = null
|
|
139
119
|
|
|
140
|
-
compiler.hooks.beforeRun.tapPromise(PLUGIN_NAME,
|
|
141
|
-
await run(generate)
|
|
142
|
-
})
|
|
120
|
+
compiler.hooks.beforeRun.tapPromise(PLUGIN_NAME, generate)
|
|
143
121
|
|
|
144
122
|
compiler.hooks.watchRun.tapPromise(PLUGIN_NAME, async () => {
|
|
145
123
|
if (handle) {
|
|
@@ -151,11 +129,9 @@ export const unpluginRouterGeneratorFactory: UnpluginFactory<
|
|
|
151
129
|
const chokidar = await import('chokidar')
|
|
152
130
|
handle = chokidar
|
|
153
131
|
.watch(routesDirectoryPath, { ignoreInitial: true })
|
|
154
|
-
.on('add',
|
|
155
|
-
await run(generate)
|
|
156
|
-
})
|
|
132
|
+
.on('add', generate)
|
|
157
133
|
|
|
158
|
-
await
|
|
134
|
+
await generate()
|
|
159
135
|
})
|
|
160
136
|
|
|
161
137
|
compiler.hooks.watchClose.tap(PLUGIN_NAME, async () => {
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { configSchema } from './core/config'
|
|
1
|
+
export { configSchema, getConfig } from './core/config'
|
|
2
2
|
export { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin'
|
|
3
3
|
export { unpluginRouterGeneratorFactory } from './core/router-generator-plugin'
|
|
4
|
-
export type { Config } from './core/config'
|
|
4
|
+
export type { Config, ConfigInput, ConfigOutput } from './core/config'
|