@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.
@@ -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, };
@@ -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: [TanStackRouterGeneratorVite()],
39
+ * plugins: [tanstackRouterGenerator()],
7
40
  * // ...
8
41
  * })
9
42
  * ```
10
43
  */
11
- declare const TanStackRouterGeneratorVite: (options?: Partial<{
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: [TanStackRouterCodeSplitterVite()],
81
+ * plugins: [tanStackRouterCodeSplitter()],
48
82
  * // ...
49
83
  * })
50
84
  * ```
51
85
  */
52
- declare const TanStackRouterCodeSplitterVite: (options?: Partial<{
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: [TanStackRouterVite()],
123
+ * plugins: [tanstackRouter()],
89
124
  * // ...
90
125
  * })
91
126
  * ```
92
127
  */
93
- declare const TanStackRouterVite: (options?: Partial<{
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
- declare const tanstackRouter: (options?: Partial<{
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 TanStackRouterVite;
158
- export { configSchema, TanStackRouterGeneratorVite, TanStackRouterCodeSplitterVite, TanStackRouterVite, tanstackRouter, };
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
- const TanStackRouterGeneratorVite = createVitePlugin(
7
- unpluginRouterGeneratorFactory
6
+ import { unpluginRouteAutoImportFactory } from "./core/route-autoimport-plugin.js";
7
+ const tanstackRouterAutoImport = createVitePlugin(
8
+ unpluginRouteAutoImportFactory
8
9
  );
9
- const TanStackRouterCodeSplitterVite = createVitePlugin(
10
+ const tanstackRouterGenerator = createVitePlugin(unpluginRouterGeneratorFactory);
11
+ const tanStackRouterCodeSplitter = createVitePlugin(
10
12
  unpluginRouterCodeSplitterFactory
11
13
  );
12
- const TanStackRouterVite = createVitePlugin(unpluginRouterComposedFactory);
13
- const tanstackRouter = TanStackRouterVite;
14
+ const tanstackRouter = createVitePlugin(unpluginRouterComposedFactory);
15
+ const TanStackRouterVite = tanstackRouter;
14
16
  export {
15
- TanStackRouterCodeSplitterVite,
16
- TanStackRouterGeneratorVite,
17
17
  TanStackRouterVite,
18
18
  configSchema,
19
- TanStackRouterVite as default,
20
- tanstackRouter
19
+ tanstackRouter as default,
20
+ tanStackRouterCodeSplitter,
21
+ tanstackRouter,
22
+ tanstackRouterAutoImport,
23
+ tanstackRouterGenerator
21
24
  };
22
25
  //# sourceMappingURL=vite.js.map
@@ -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'\n\nimport type { Config } from './core/config'\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [TanStackRouterGeneratorVite()],\n * // ...\n * })\n * ```\n */\nconst TanStackRouterGeneratorVite = createVitePlugin(\n unpluginRouterGeneratorFactory,\n)\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [TanStackRouterCodeSplitterVite()],\n * // ...\n * })\n * ```\n */\nconst TanStackRouterCodeSplitterVite = createVitePlugin(\n unpluginRouterCodeSplitterFactory,\n)\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [TanStackRouterVite()],\n * // ...\n * })\n * ```\n */\nconst TanStackRouterVite = createVitePlugin(unpluginRouterComposedFactory)\nconst tanstackRouter = TanStackRouterVite\n\nexport default TanStackRouterVite\nexport {\n configSchema,\n TanStackRouterGeneratorVite,\n TanStackRouterCodeSplitterVite,\n TanStackRouterVite,\n tanstackRouter,\n}\n\nexport type { Config }\n"],"names":[],"mappings":";;;;;AAkBA,MAAM,8BAA8B;AAAA,EAClC;AACF;AAWA,MAAM,iCAAiC;AAAA,EACrC;AACF;AAWM,MAAA,qBAAqB,iBAAiB,6BAA6B;AACzE,MAAM,iBAAiB;"}
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;"}
@@ -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.2",
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-core": "^1.121.0-alpha.1",
104
- "@tanstack/router-generator": "^1.121.0-alpha.1",
105
- "@tanstack/router-utils": "^1.121.0-alpha.2",
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.1"
115
+ "@tanstack/react-router": "^1.121.0-alpha.22"
114
116
  },
115
117
  "peerDependenciesMeta": {
116
118
  "@rsbuild/core": {
@@ -78,3 +78,5 @@ export const getConfig = (inlineConfig: Partial<Config>, root: string) => {
78
78
  }
79
79
 
80
80
  export type Config = z.infer<typeof configSchema>
81
+ export type ConfigInput = z.input<typeof configSchema>
82
+ export type ConfigOutput = z.output<typeof configSchema>
@@ -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, resolve } from 'node:path'
2
- import { generator, resolveConfigPath } from '@tanstack/router-generator'
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
- let ROOT: string = process.cwd()
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 (checkLock()) {
35
+ if (routeGenerationDisabled()) {
31
36
  return
32
37
  }
33
-
34
- setLock(true)
35
-
36
38
  try {
37
- await generator(userConfig, process.cwd())
38
- } catch (err) {
39
- console.error(err)
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
- userConfig = getConfig(options, ROOT)
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
- const routesDirectoryPath = getRoutesDirectoryPath()
66
- if (filePath.startsWith(routesDirectoryPath)) {
67
- await generate()
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
- await run(async () => {
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(config) {
86
- ROOT = config.root
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 run(generate)
83
+ await generate()
100
84
  },
101
85
  sharedDuringBuild: true,
102
86
  },
103
87
  rspack(compiler) {
104
- userConfig = getConfig(options, ROOT)
88
+ initConfigAndGenerator()
105
89
 
106
90
  let handle: FSWatcher | null = null
107
91
 
108
- compiler.hooks.beforeRun.tapPromise(PLUGIN_NAME, async () => {
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', async () => {
123
- await run(generate)
124
- })
104
+ .on('add', generate)
125
105
 
126
- await run(generate)
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, async () => {
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', async () => {
155
- await run(generate)
156
- })
132
+ .on('add', generate)
157
133
 
158
- await run(generate)
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'