@tanstack/router-plugin 1.120.4-alpha.4 → 1.120.5

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 (73) hide show
  1. package/dist/cjs/core/code-splitter/compilers.cjs +21 -39
  2. package/dist/cjs/core/code-splitter/compilers.cjs.map +1 -1
  3. package/dist/cjs/core/code-splitter/compilers.d.cts +0 -3
  4. package/dist/cjs/core/code-splitter/framework-options.cjs +8 -4
  5. package/dist/cjs/core/code-splitter/framework-options.cjs.map +1 -1
  6. package/dist/cjs/core/code-splitter/framework-options.d.cts +2 -0
  7. package/dist/cjs/core/config.d.cts +40 -31
  8. package/dist/cjs/core/router-code-splitter-plugin.cjs +20 -11
  9. package/dist/cjs/core/router-code-splitter-plugin.cjs.map +1 -1
  10. package/dist/cjs/core/router-composed-plugin.cjs +5 -19
  11. package/dist/cjs/core/router-composed-plugin.cjs.map +1 -1
  12. package/dist/cjs/core/router-generator-plugin.cjs +2 -8
  13. package/dist/cjs/core/router-generator-plugin.cjs.map +1 -1
  14. package/dist/cjs/esbuild.d.cts +27 -21
  15. package/dist/cjs/rspack.d.cts +27 -21
  16. package/dist/cjs/vite.cjs +0 -2
  17. package/dist/cjs/vite.cjs.map +1 -1
  18. package/dist/cjs/vite.d.cts +26 -52
  19. package/dist/cjs/webpack.d.cts +27 -21
  20. package/dist/esm/core/code-splitter/compilers.d.ts +0 -3
  21. package/dist/esm/core/code-splitter/compilers.js +21 -39
  22. package/dist/esm/core/code-splitter/compilers.js.map +1 -1
  23. package/dist/esm/core/code-splitter/framework-options.d.ts +2 -0
  24. package/dist/esm/core/code-splitter/framework-options.js +8 -4
  25. package/dist/esm/core/code-splitter/framework-options.js.map +1 -1
  26. package/dist/esm/core/config.d.ts +40 -31
  27. package/dist/esm/core/router-code-splitter-plugin.js +14 -5
  28. package/dist/esm/core/router-code-splitter-plugin.js.map +1 -1
  29. package/dist/esm/core/router-composed-plugin.js +5 -19
  30. package/dist/esm/core/router-composed-plugin.js.map +1 -1
  31. package/dist/esm/core/router-generator-plugin.js +2 -8
  32. package/dist/esm/core/router-generator-plugin.js.map +1 -1
  33. package/dist/esm/esbuild.d.ts +27 -21
  34. package/dist/esm/rspack.d.ts +27 -21
  35. package/dist/esm/vite.d.ts +26 -52
  36. package/dist/esm/vite.js +1 -3
  37. package/dist/esm/vite.js.map +1 -1
  38. package/dist/esm/webpack.d.ts +27 -21
  39. package/package.json +6 -6
  40. package/src/core/code-splitter/compilers.ts +27 -54
  41. package/src/core/code-splitter/framework-options.ts +6 -0
  42. package/src/core/router-code-splitter-plugin.ts +23 -3
  43. package/src/core/router-composed-plugin.ts +10 -20
  44. package/src/core/router-generator-plugin.ts +1 -12
  45. package/src/vite.ts +0 -3
  46. package/dist/cjs/core/route-autoimport-plugin.cjs +0 -98
  47. package/dist/cjs/core/route-autoimport-plugin.cjs.map +0 -1
  48. package/dist/cjs/core/route-autoimport-plugin.d.cts +0 -6
  49. package/dist/cjs/core/route-hmr-statement.cjs +0 -33
  50. package/dist/cjs/core/route-hmr-statement.cjs.map +0 -1
  51. package/dist/cjs/core/route-hmr-statement.d.cts +0 -1
  52. package/dist/cjs/core/router-hmr-plugin.cjs +0 -51
  53. package/dist/cjs/core/router-hmr-plugin.cjs.map +0 -1
  54. package/dist/cjs/core/router-hmr-plugin.d.cts +0 -8
  55. package/dist/cjs/core/utils.cjs +0 -12
  56. package/dist/cjs/core/utils.cjs.map +0 -1
  57. package/dist/cjs/core/utils.d.cts +0 -2
  58. package/dist/esm/core/route-autoimport-plugin.d.ts +0 -6
  59. package/dist/esm/core/route-autoimport-plugin.js +0 -81
  60. package/dist/esm/core/route-autoimport-plugin.js.map +0 -1
  61. package/dist/esm/core/route-hmr-statement.d.ts +0 -1
  62. package/dist/esm/core/route-hmr-statement.js +0 -16
  63. package/dist/esm/core/route-hmr-statement.js.map +0 -1
  64. package/dist/esm/core/router-hmr-plugin.d.ts +0 -8
  65. package/dist/esm/core/router-hmr-plugin.js +0 -51
  66. package/dist/esm/core/router-hmr-plugin.js.map +0 -1
  67. package/dist/esm/core/utils.d.ts +0 -2
  68. package/dist/esm/core/utils.js +0 -12
  69. package/dist/esm/core/utils.js.map +0 -1
  70. package/src/core/route-autoimport-plugin.ts +0 -102
  71. package/src/core/route-hmr-statement.ts +0 -13
  72. package/src/core/router-hmr-plugin.ts +0 -65
  73. package/src/core/utils.ts +0 -18
@@ -16,29 +16,31 @@ declare const TanStackRouterGeneratorRspack: (options?: Partial<{
16
16
  target: "react" | "solid";
17
17
  routeFileIgnorePrefix: string;
18
18
  routesDirectory: string;
19
+ generatedRouteTree: string;
19
20
  quoteStyle: "single" | "double";
20
21
  semicolons: boolean;
21
- disableLogging: boolean;
22
- routeTreeFileHeader: string[];
23
- indexToken: string;
24
- routeToken: string;
25
- generatedRouteTree: string;
26
22
  disableTypes: boolean;
27
23
  addExtensions: boolean;
24
+ disableLogging: boolean;
28
25
  disableManifestGeneration: boolean;
29
26
  enableRouteTreeFormatting: boolean;
27
+ apiBase: string;
28
+ routeTreeFileHeader: string[];
30
29
  routeTreeFileFooter: string[];
30
+ indexToken: string;
31
+ routeToken: string;
31
32
  enableRouteGeneration?: boolean | undefined;
32
33
  codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
33
34
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
34
35
  routeFilePrefix?: string | undefined;
35
36
  routeFileIgnorePattern?: string | undefined;
36
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
37
- verboseFileRoutes?: boolean | undefined;
37
+ __enableAPIRoutesGeneration?: boolean | undefined;
38
38
  autoCodeSplitting?: boolean | undefined;
39
+ pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
39
40
  customScaffolding?: {
40
41
  routeTemplate?: string | undefined;
41
42
  lazyRouteTemplate?: string | undefined;
43
+ apiTemplate?: string | undefined;
42
44
  } | undefined;
43
45
  experimental?: {
44
46
  enableCodeSplitting?: boolean | undefined;
@@ -61,29 +63,31 @@ declare const TanStackRouterCodeSplitterRspack: (options?: Partial<{
61
63
  target: "react" | "solid";
62
64
  routeFileIgnorePrefix: string;
63
65
  routesDirectory: string;
66
+ generatedRouteTree: string;
64
67
  quoteStyle: "single" | "double";
65
68
  semicolons: boolean;
66
- disableLogging: boolean;
67
- routeTreeFileHeader: string[];
68
- indexToken: string;
69
- routeToken: string;
70
- generatedRouteTree: string;
71
69
  disableTypes: boolean;
72
70
  addExtensions: boolean;
71
+ disableLogging: boolean;
73
72
  disableManifestGeneration: boolean;
74
73
  enableRouteTreeFormatting: boolean;
74
+ apiBase: string;
75
+ routeTreeFileHeader: string[];
75
76
  routeTreeFileFooter: string[];
77
+ indexToken: string;
78
+ routeToken: string;
76
79
  enableRouteGeneration?: boolean | undefined;
77
80
  codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
78
81
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
79
82
  routeFilePrefix?: string | undefined;
80
83
  routeFileIgnorePattern?: string | undefined;
81
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
82
- verboseFileRoutes?: boolean | undefined;
84
+ __enableAPIRoutesGeneration?: boolean | undefined;
83
85
  autoCodeSplitting?: boolean | undefined;
86
+ pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
84
87
  customScaffolding?: {
85
88
  routeTemplate?: string | undefined;
86
89
  lazyRouteTemplate?: string | undefined;
90
+ apiTemplate?: string | undefined;
87
91
  } | undefined;
88
92
  experimental?: {
89
93
  enableCodeSplitting?: boolean | undefined;
@@ -106,29 +110,31 @@ declare const TanStackRouterRspack: (options?: Partial<{
106
110
  target: "react" | "solid";
107
111
  routeFileIgnorePrefix: string;
108
112
  routesDirectory: string;
113
+ generatedRouteTree: string;
109
114
  quoteStyle: "single" | "double";
110
115
  semicolons: boolean;
111
- disableLogging: boolean;
112
- routeTreeFileHeader: string[];
113
- indexToken: string;
114
- routeToken: string;
115
- generatedRouteTree: string;
116
116
  disableTypes: boolean;
117
117
  addExtensions: boolean;
118
+ disableLogging: boolean;
118
119
  disableManifestGeneration: boolean;
119
120
  enableRouteTreeFormatting: boolean;
121
+ apiBase: string;
122
+ routeTreeFileHeader: string[];
120
123
  routeTreeFileFooter: string[];
124
+ indexToken: string;
125
+ routeToken: string;
121
126
  enableRouteGeneration?: boolean | undefined;
122
127
  codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
123
128
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
124
129
  routeFilePrefix?: string | undefined;
125
130
  routeFileIgnorePattern?: string | undefined;
126
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
127
- verboseFileRoutes?: boolean | undefined;
131
+ __enableAPIRoutesGeneration?: boolean | undefined;
128
132
  autoCodeSplitting?: boolean | undefined;
133
+ pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
129
134
  customScaffolding?: {
130
135
  routeTemplate?: string | undefined;
131
136
  lazyRouteTemplate?: string | undefined;
137
+ apiTemplate?: string | undefined;
132
138
  } | undefined;
133
139
  experimental?: {
134
140
  enableCodeSplitting?: boolean | undefined;
@@ -12,29 +12,31 @@ declare const TanStackRouterGeneratorVite: (options?: Partial<{
12
12
  target: "react" | "solid";
13
13
  routeFileIgnorePrefix: string;
14
14
  routesDirectory: string;
15
+ generatedRouteTree: string;
15
16
  quoteStyle: "single" | "double";
16
17
  semicolons: boolean;
17
- disableLogging: boolean;
18
- routeTreeFileHeader: string[];
19
- indexToken: string;
20
- routeToken: string;
21
- generatedRouteTree: string;
22
18
  disableTypes: boolean;
23
19
  addExtensions: boolean;
20
+ disableLogging: boolean;
24
21
  disableManifestGeneration: boolean;
25
22
  enableRouteTreeFormatting: boolean;
23
+ apiBase: string;
24
+ routeTreeFileHeader: string[];
26
25
  routeTreeFileFooter: string[];
26
+ indexToken: string;
27
+ routeToken: string;
27
28
  enableRouteGeneration?: boolean | undefined;
28
29
  codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
29
30
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
30
31
  routeFilePrefix?: string | undefined;
31
32
  routeFileIgnorePattern?: string | undefined;
32
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
33
- verboseFileRoutes?: boolean | undefined;
33
+ __enableAPIRoutesGeneration?: boolean | undefined;
34
34
  autoCodeSplitting?: boolean | undefined;
35
+ pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
35
36
  customScaffolding?: {
36
37
  routeTemplate?: string | undefined;
37
38
  lazyRouteTemplate?: string | undefined;
39
+ apiTemplate?: string | undefined;
38
40
  } | undefined;
39
41
  experimental?: {
40
42
  enableCodeSplitting?: boolean | undefined;
@@ -53,29 +55,31 @@ declare const TanStackRouterCodeSplitterVite: (options?: Partial<{
53
55
  target: "react" | "solid";
54
56
  routeFileIgnorePrefix: string;
55
57
  routesDirectory: string;
58
+ generatedRouteTree: string;
56
59
  quoteStyle: "single" | "double";
57
60
  semicolons: boolean;
58
- disableLogging: boolean;
59
- routeTreeFileHeader: string[];
60
- indexToken: string;
61
- routeToken: string;
62
- generatedRouteTree: string;
63
61
  disableTypes: boolean;
64
62
  addExtensions: boolean;
63
+ disableLogging: boolean;
65
64
  disableManifestGeneration: boolean;
66
65
  enableRouteTreeFormatting: boolean;
66
+ apiBase: string;
67
+ routeTreeFileHeader: string[];
67
68
  routeTreeFileFooter: string[];
69
+ indexToken: string;
70
+ routeToken: string;
68
71
  enableRouteGeneration?: boolean | undefined;
69
72
  codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
70
73
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
71
74
  routeFilePrefix?: string | undefined;
72
75
  routeFileIgnorePattern?: string | undefined;
73
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
74
- verboseFileRoutes?: boolean | undefined;
76
+ __enableAPIRoutesGeneration?: boolean | undefined;
75
77
  autoCodeSplitting?: boolean | undefined;
78
+ pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
76
79
  customScaffolding?: {
77
80
  routeTemplate?: string | undefined;
78
81
  lazyRouteTemplate?: string | undefined;
82
+ apiTemplate?: string | undefined;
79
83
  } | undefined;
80
84
  experimental?: {
81
85
  enableCodeSplitting?: boolean | undefined;
@@ -94,66 +98,36 @@ declare const TanStackRouterVite: (options?: Partial<{
94
98
  target: "react" | "solid";
95
99
  routeFileIgnorePrefix: string;
96
100
  routesDirectory: string;
101
+ generatedRouteTree: string;
97
102
  quoteStyle: "single" | "double";
98
103
  semicolons: boolean;
99
- disableLogging: boolean;
100
- routeTreeFileHeader: string[];
101
- indexToken: string;
102
- routeToken: string;
103
- generatedRouteTree: string;
104
104
  disableTypes: boolean;
105
105
  addExtensions: boolean;
106
+ disableLogging: boolean;
106
107
  disableManifestGeneration: boolean;
107
108
  enableRouteTreeFormatting: boolean;
108
- routeTreeFileFooter: string[];
109
- enableRouteGeneration?: boolean | undefined;
110
- codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
111
- virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
112
- routeFilePrefix?: string | undefined;
113
- routeFileIgnorePattern?: string | undefined;
114
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
115
- verboseFileRoutes?: boolean | undefined;
116
- autoCodeSplitting?: boolean | undefined;
117
- customScaffolding?: {
118
- routeTemplate?: string | undefined;
119
- lazyRouteTemplate?: string | undefined;
120
- } | undefined;
121
- experimental?: {
122
- enableCodeSplitting?: boolean | undefined;
123
- } | undefined;
124
- }> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
125
- declare const tanstackRouter: (options?: Partial<{
126
- target: "react" | "solid";
127
- routeFileIgnorePrefix: string;
128
- routesDirectory: string;
129
- quoteStyle: "single" | "double";
130
- semicolons: boolean;
131
- disableLogging: boolean;
109
+ apiBase: string;
132
110
  routeTreeFileHeader: string[];
111
+ routeTreeFileFooter: string[];
133
112
  indexToken: string;
134
113
  routeToken: string;
135
- generatedRouteTree: string;
136
- disableTypes: boolean;
137
- addExtensions: boolean;
138
- disableManifestGeneration: boolean;
139
- enableRouteTreeFormatting: boolean;
140
- routeTreeFileFooter: string[];
141
114
  enableRouteGeneration?: boolean | undefined;
142
115
  codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
143
116
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
144
117
  routeFilePrefix?: string | undefined;
145
118
  routeFileIgnorePattern?: string | undefined;
146
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
147
- verboseFileRoutes?: boolean | undefined;
119
+ __enableAPIRoutesGeneration?: boolean | undefined;
148
120
  autoCodeSplitting?: boolean | undefined;
121
+ pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
149
122
  customScaffolding?: {
150
123
  routeTemplate?: string | undefined;
151
124
  lazyRouteTemplate?: string | undefined;
125
+ apiTemplate?: string | undefined;
152
126
  } | undefined;
153
127
  experimental?: {
154
128
  enableCodeSplitting?: boolean | undefined;
155
129
  } | undefined;
156
130
  }> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
157
131
  export default TanStackRouterVite;
158
- export { configSchema, TanStackRouterGeneratorVite, TanStackRouterCodeSplitterVite, TanStackRouterVite, tanstackRouter, };
132
+ export { configSchema, TanStackRouterGeneratorVite, TanStackRouterCodeSplitterVite, TanStackRouterVite, };
159
133
  export type { Config };
package/dist/esm/vite.js CHANGED
@@ -10,13 +10,11 @@ const TanStackRouterCodeSplitterVite = createVitePlugin(
10
10
  unpluginRouterCodeSplitterFactory
11
11
  );
12
12
  const TanStackRouterVite = createVitePlugin(unpluginRouterComposedFactory);
13
- const tanstackRouter = TanStackRouterVite;
14
13
  export {
15
14
  TanStackRouterCodeSplitterVite,
16
15
  TanStackRouterGeneratorVite,
17
16
  TanStackRouterVite,
18
17
  configSchema,
19
- TanStackRouterVite as default,
20
- tanstackRouter
18
+ TanStackRouterVite as default
21
19
  };
22
20
  //# 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'\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)\n\nexport default TanStackRouterVite\nexport {\n configSchema,\n TanStackRouterGeneratorVite,\n TanStackRouterCodeSplitterVite,\n TanStackRouterVite,\n}\nexport type { Config }\n"],"names":[],"mappings":";;;;;AAkBA,MAAM,8BAA8B;AAAA,EAClC;AACF;AAWA,MAAM,iCAAiC;AAAA,EACrC;AACF;AAWM,MAAA,qBAAqB,iBAAiB,6BAA6B;"}
@@ -12,29 +12,31 @@ declare const TanStackRouterGeneratorWebpack: (options?: Partial<{
12
12
  target: "react" | "solid";
13
13
  routeFileIgnorePrefix: string;
14
14
  routesDirectory: string;
15
+ generatedRouteTree: string;
15
16
  quoteStyle: "single" | "double";
16
17
  semicolons: boolean;
17
- disableLogging: boolean;
18
- routeTreeFileHeader: string[];
19
- indexToken: string;
20
- routeToken: string;
21
- generatedRouteTree: string;
22
18
  disableTypes: boolean;
23
19
  addExtensions: boolean;
20
+ disableLogging: boolean;
24
21
  disableManifestGeneration: boolean;
25
22
  enableRouteTreeFormatting: boolean;
23
+ apiBase: string;
24
+ routeTreeFileHeader: string[];
26
25
  routeTreeFileFooter: string[];
26
+ indexToken: string;
27
+ routeToken: string;
27
28
  enableRouteGeneration?: boolean | undefined;
28
29
  codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
29
30
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
30
31
  routeFilePrefix?: string | undefined;
31
32
  routeFileIgnorePattern?: string | undefined;
32
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
33
- verboseFileRoutes?: boolean | undefined;
33
+ __enableAPIRoutesGeneration?: boolean | undefined;
34
34
  autoCodeSplitting?: boolean | undefined;
35
+ pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
35
36
  customScaffolding?: {
36
37
  routeTemplate?: string | undefined;
37
38
  lazyRouteTemplate?: string | undefined;
39
+ apiTemplate?: string | undefined;
38
40
  } | undefined;
39
41
  experimental?: {
40
42
  enableCodeSplitting?: boolean | undefined;
@@ -53,29 +55,31 @@ declare const TanStackRouterCodeSplitterWebpack: (options?: Partial<{
53
55
  target: "react" | "solid";
54
56
  routeFileIgnorePrefix: string;
55
57
  routesDirectory: string;
58
+ generatedRouteTree: string;
56
59
  quoteStyle: "single" | "double";
57
60
  semicolons: boolean;
58
- disableLogging: boolean;
59
- routeTreeFileHeader: string[];
60
- indexToken: string;
61
- routeToken: string;
62
- generatedRouteTree: string;
63
61
  disableTypes: boolean;
64
62
  addExtensions: boolean;
63
+ disableLogging: boolean;
65
64
  disableManifestGeneration: boolean;
66
65
  enableRouteTreeFormatting: boolean;
66
+ apiBase: string;
67
+ routeTreeFileHeader: string[];
67
68
  routeTreeFileFooter: string[];
69
+ indexToken: string;
70
+ routeToken: string;
68
71
  enableRouteGeneration?: boolean | undefined;
69
72
  codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
70
73
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
71
74
  routeFilePrefix?: string | undefined;
72
75
  routeFileIgnorePattern?: string | undefined;
73
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
74
- verboseFileRoutes?: boolean | undefined;
76
+ __enableAPIRoutesGeneration?: boolean | undefined;
75
77
  autoCodeSplitting?: boolean | undefined;
78
+ pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
76
79
  customScaffolding?: {
77
80
  routeTemplate?: string | undefined;
78
81
  lazyRouteTemplate?: string | undefined;
82
+ apiTemplate?: string | undefined;
79
83
  } | undefined;
80
84
  experimental?: {
81
85
  enableCodeSplitting?: boolean | undefined;
@@ -94,29 +98,31 @@ declare const TanStackRouterWebpack: (options?: Partial<{
94
98
  target: "react" | "solid";
95
99
  routeFileIgnorePrefix: string;
96
100
  routesDirectory: string;
101
+ generatedRouteTree: string;
97
102
  quoteStyle: "single" | "double";
98
103
  semicolons: boolean;
99
- disableLogging: boolean;
100
- routeTreeFileHeader: string[];
101
- indexToken: string;
102
- routeToken: string;
103
- generatedRouteTree: string;
104
104
  disableTypes: boolean;
105
105
  addExtensions: boolean;
106
+ disableLogging: boolean;
106
107
  disableManifestGeneration: boolean;
107
108
  enableRouteTreeFormatting: boolean;
109
+ apiBase: string;
110
+ routeTreeFileHeader: string[];
108
111
  routeTreeFileFooter: string[];
112
+ indexToken: string;
113
+ routeToken: string;
109
114
  enableRouteGeneration?: boolean | undefined;
110
115
  codeSplittingOptions?: import('./core/config.js').CodeSplittingOptions | undefined;
111
116
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
112
117
  routeFilePrefix?: string | undefined;
113
118
  routeFileIgnorePattern?: string | undefined;
114
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
115
- verboseFileRoutes?: boolean | undefined;
119
+ __enableAPIRoutesGeneration?: boolean | undefined;
116
120
  autoCodeSplitting?: boolean | undefined;
121
+ pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
117
122
  customScaffolding?: {
118
123
  routeTemplate?: string | undefined;
119
124
  lazyRouteTemplate?: string | undefined;
125
+ apiTemplate?: string | undefined;
120
126
  } | undefined;
121
127
  experimental?: {
122
128
  enableCodeSplitting?: boolean | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/router-plugin",
3
- "version": "1.120.4-alpha.4",
3
+ "version": "1.120.5",
4
4
  "description": "Modern and scalable routing for React applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -100,17 +100,17 @@
100
100
  "chokidar": "^3.6.0",
101
101
  "unplugin": "^2.1.2",
102
102
  "zod": "^3.24.2",
103
- "@tanstack/router-core": "^1.120.4-alpha.1",
104
- "@tanstack/router-generator": "^1.120.4-alpha.4",
105
- "@tanstack/router-utils": "^1.120.4-alpha.1",
106
- "@tanstack/virtual-file-routes": "^1.120.4-alpha.1"
103
+ "@tanstack/router-generator": "^1.120.5",
104
+ "@tanstack/router-utils": "^1.115.0",
105
+ "@tanstack/router-core": "^1.120.5",
106
+ "@tanstack/virtual-file-routes": "^1.115.0"
107
107
  },
108
108
  "peerDependencies": {
109
109
  "@rsbuild/core": ">=1.0.2",
110
110
  "vite": ">=5.0.0 || >=6.0.0",
111
111
  "vite-plugin-solid": "^2.11.2",
112
112
  "webpack": ">=5.92.0",
113
- "@tanstack/react-router": "^1.120.4-alpha.1"
113
+ "@tanstack/react-router": "^1.120.5"
114
114
  },
115
115
  "peerDependenciesMeta": {
116
116
  "@rsbuild/core": {
@@ -7,7 +7,6 @@ import {
7
7
  } from 'babel-dead-code-elimination'
8
8
  import { generateFromAst, parseAst } from '@tanstack/router-utils'
9
9
  import { tsrSplit } from '../constants'
10
- import { routeHmrStatement } from '../route-hmr-statement'
11
10
  import { createIdentifier } from './path-ids'
12
11
  import { getFrameworkOptions } from './framework-options'
13
12
  import type { GeneratorResult, ParseAstOptions } from '@tanstack/router-utils'
@@ -118,8 +117,6 @@ export function compileCodeSplitReferenceRoute(
118
117
  runtimeEnv: 'dev' | 'prod'
119
118
  codeSplitGroupings: CodeSplitGroupings
120
119
  targetFramework: Config['target']
121
- filename: string
122
- id: string
123
120
  },
124
121
  ): GeneratorResult {
125
122
  const ast = parseAst(opts)
@@ -169,13 +166,18 @@ export function compileCodeSplitReferenceRoute(
169
166
  return
170
167
  }
171
168
 
172
- function babelHandleReference(routeOptions: t.Node | undefined) {
169
+ if (t.isCallExpression(path.parentPath.node)) {
170
+ const options = resolveIdentifier(
171
+ path,
172
+ path.parentPath.node.arguments[0],
173
+ )
174
+
173
175
  const hasImportedOrDefinedIdentifier = (name: string) => {
174
176
  return programPath.scope.hasBinding(name)
175
177
  }
176
178
 
177
- if (t.isObjectExpression(routeOptions)) {
178
- routeOptions.properties.forEach((prop) => {
179
+ if (t.isObjectExpression(options)) {
180
+ options.properties.forEach((prop) => {
179
181
  if (t.isObjectProperty(prop)) {
180
182
  if (t.isIdentifier(prop.key)) {
181
183
  // If the user has not specified a split grouping for this key
@@ -286,9 +288,18 @@ export function compileCodeSplitReferenceRoute(
286
288
  )()
287
289
  }
288
290
 
289
- // add HMR handling
290
- if (opts.runtimeEnv !== 'prod') {
291
- programPath.pushContainer('body', routeHmrStatement)
291
+ // If the TSRDummyComponent is not defined, define it
292
+ if (
293
+ opts.runtimeEnv !== 'prod' && // only in development
294
+ !hasImportedOrDefinedIdentifier(
295
+ frameworkOptions.idents.dummyHMRComponent,
296
+ )
297
+ ) {
298
+ programPath.pushContainer('body', [
299
+ template.statement(
300
+ frameworkOptions.dummyHMRComponent,
301
+ )(),
302
+ ])
292
303
  }
293
304
  }
294
305
 
@@ -358,27 +369,6 @@ export function compileCodeSplitReferenceRoute(
358
369
  })
359
370
  }
360
371
  }
361
-
362
- if (t.isCallExpression(path.parentPath.node)) {
363
- // createFileRoute('/')({ ... })
364
- const options = resolveIdentifier(
365
- path,
366
- path.parentPath.node.arguments[0],
367
- )
368
-
369
- babelHandleReference(options)
370
- } else if (t.isVariableDeclarator(path.parentPath.node)) {
371
- // createFileRoute({ ... })
372
- const caller = resolveIdentifier(
373
- path,
374
- path.parentPath.node.init,
375
- )
376
-
377
- if (t.isCallExpression(caller)) {
378
- const options = resolveIdentifier(path, caller.arguments[0])
379
- babelHandleReference(options)
380
- }
381
- }
382
372
  },
383
373
  },
384
374
  state,
@@ -416,7 +406,6 @@ export function compileCodeSplitReferenceRoute(
416
406
  export function compileCodeSplitVirtualRoute(
417
407
  opts: ParseAstOptions & {
418
408
  splitTargets: Array<SplitRouteIdentNodes>
419
- filename: string
420
409
  },
421
410
  ): GeneratorResult {
422
411
  const ast = parseAst(opts)
@@ -459,7 +448,12 @@ export function compileCodeSplitVirtualRoute(
459
448
  return
460
449
  }
461
450
 
462
- function babelHandleVirtual(options: t.Node | undefined) {
451
+ if (t.isCallExpression(path.parentPath.node)) {
452
+ const options = resolveIdentifier(
453
+ path,
454
+ path.parentPath.node.arguments[0],
455
+ )
456
+
463
457
  if (t.isObjectExpression(options)) {
464
458
  options.properties.forEach((prop) => {
465
459
  if (t.isObjectProperty(prop)) {
@@ -503,27 +497,6 @@ export function compileCodeSplitVirtualRoute(
503
497
  options.properties = []
504
498
  }
505
499
  }
506
-
507
- if (t.isCallExpression(path.parentPath.node)) {
508
- // createFileRoute('/')({ ... })
509
- const options = resolveIdentifier(
510
- path,
511
- path.parentPath.node.arguments[0],
512
- )
513
-
514
- babelHandleVirtual(options)
515
- } else if (t.isVariableDeclarator(path.parentPath.node)) {
516
- // createFileRoute({ ... })
517
- const caller = resolveIdentifier(
518
- path,
519
- path.parentPath.node.init,
520
- )
521
-
522
- if (t.isCallExpression(caller)) {
523
- const options = resolveIdentifier(path, caller.arguments[0])
524
- babelHandleVirtual(options)
525
- }
526
- }
527
500
  },
528
501
  },
529
502
  state,
@@ -868,7 +841,7 @@ function getImportSpecifierAndPathFromLocalName(
868
841
  }
869
842
 
870
843
  // Reusable function to get literal value or resolve variable to literal
871
- function resolveIdentifier(path: any, node: any): t.Node | undefined {
844
+ function resolveIdentifier(path: any, node: any) {
872
845
  if (t.isIdentifier(node)) {
873
846
  const binding = path.scope.getBinding(node.name)
874
847
  if (
@@ -4,7 +4,9 @@ type FrameworkOptions = {
4
4
  createFileRoute: string
5
5
  lazyFn: string
6
6
  lazyRouteComponent: string
7
+ dummyHMRComponent: string
7
8
  }
9
+ dummyHMRComponent: string
8
10
  }
9
11
 
10
12
  export function getFrameworkOptions(framework: string): FrameworkOptions {
@@ -18,7 +20,9 @@ export function getFrameworkOptions(framework: string): FrameworkOptions {
18
20
  createFileRoute: 'createFileRoute',
19
21
  lazyFn: 'lazyFn',
20
22
  lazyRouteComponent: 'lazyRouteComponent',
23
+ dummyHMRComponent: 'TSRDummyComponent',
21
24
  },
25
+ dummyHMRComponent: `export function TSRDummyComponent() { return null }`,
22
26
  }
23
27
  break
24
28
  case 'solid':
@@ -28,7 +32,9 @@ export function getFrameworkOptions(framework: string): FrameworkOptions {
28
32
  createFileRoute: 'createFileRoute',
29
33
  lazyFn: 'lazyFn',
30
34
  lazyRouteComponent: 'lazyRouteComponent',
35
+ dummyHMRComponent: 'TSRDummyComponent',
31
36
  },
37
+ dummyHMRComponent: `export function TSRDummyComponent() { return null }`,
32
38
  }
33
39
  break
34
40
  default: