@tanstack/router-plugin 1.121.0-alpha.2 → 1.121.0-alpha.22

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.
@@ -1 +1 @@
1
- {"version":3,"file":"config.cjs","sources":["../../../src/core/config.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n configSchema as generatorConfigSchema,\n getConfig as getGeneratorConfig,\n} from '@tanstack/router-generator'\nimport type { RegisteredRouter, RouteIds } from '@tanstack/router-core'\nimport type { CodeSplitGroupings } from './constants'\n\nexport const splitGroupingsSchema = z\n .array(\n z.array(\n z.union([\n z.literal('loader'),\n z.literal('component'),\n z.literal('pendingComponent'),\n z.literal('errorComponent'),\n z.literal('notFoundComponent'),\n ]),\n ),\n {\n message:\n \" Must be an Array of Arrays containing the split groupings. i.e. [['component'], ['pendingComponent'], ['errorComponent', 'notFoundComponent']]\",\n },\n )\n .superRefine((val, ctx) => {\n const flattened = val.flat()\n const unique = [...new Set(flattened)]\n\n // Elements must be unique,\n // ie. this shouldn't be allows [['component'], ['component', 'loader']]\n if (unique.length !== flattened.length) {\n ctx.addIssue({\n code: 'custom',\n message:\n \" Split groupings must be unique and not repeated. i.e. i.e. [['component'], ['pendingComponent'], ['errorComponent', 'notFoundComponent']].\" +\n `\\n You input was: ${JSON.stringify(val)}.`,\n })\n }\n })\n\nexport type CodeSplittingOptions = {\n /**\n * Use this function to programmatically control the code splitting behavior\n * based on the `routeId` for each route.\n *\n * If you just need to change the default behavior, you can use the `defaultBehavior` option.\n * @param params\n */\n splitBehavior?: (params: {\n routeId: RouteIds<RegisteredRouter['routeTree']>\n }) => CodeSplitGroupings | undefined | void\n\n /**\n * The default/global configuration to control your code splitting behavior per route.\n * @default [['component'],['pendingComponent'],['errorComponent'],['notFoundComponent']]\n */\n defaultBehavior?: CodeSplitGroupings\n}\n\nconst codeSplittingOptionsSchema = z.object({\n splitBehavior: z.function().optional(),\n defaultBehavior: splitGroupingsSchema.optional(),\n})\n\nexport const configSchema = generatorConfigSchema.extend({\n enableRouteGeneration: z.boolean().optional(),\n codeSplittingOptions: z\n .custom<CodeSplittingOptions>((v) => {\n return codeSplittingOptionsSchema.parse(v)\n })\n .optional(),\n})\n\nexport const getConfig = (inlineConfig: Partial<Config>, root: string) => {\n const config = getGeneratorConfig(inlineConfig, root)\n\n return configSchema.parse({ ...config, ...inlineConfig })\n}\n\nexport type Config = z.infer<typeof configSchema>\n"],"names":["z","generatorConfigSchema","getGeneratorConfig"],"mappings":";;;;AAQO,MAAM,uBAAuBA,IACjC,EAAA;AAAA,EACCA,IAAAA,EAAE;AAAA,IACAA,IAAAA,EAAE,MAAM;AAAA,MACNA,IAAA,EAAE,QAAQ,QAAQ;AAAA,MAClBA,IAAA,EAAE,QAAQ,WAAW;AAAA,MACrBA,IAAA,EAAE,QAAQ,kBAAkB;AAAA,MAC5BA,IAAA,EAAE,QAAQ,gBAAgB;AAAA,MAC1BA,IAAA,EAAE,QAAQ,mBAAmB;AAAA,IAC9B,CAAA;AAAA,EACH;AAAA,EACA;AAAA,IACE,SACE;AAAA,EAAA;AAEN,EACC,YAAY,CAAC,KAAK,QAAQ;AACnB,QAAA,YAAY,IAAI,KAAK;AAC3B,QAAM,SAAS,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC;AAIjC,MAAA,OAAO,WAAW,UAAU,QAAQ;AACtC,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,SACE;AAAA,mBACsB,KAAK,UAAU,GAAG,CAAC;AAAA,IAAA,CAC5C;AAAA,EAAA;AAEL,CAAC;AAqBH,MAAM,6BAA6BA,MAAE,OAAO;AAAA,EAC1C,eAAeA,IAAA,EAAE,SAAS,EAAE,SAAS;AAAA,EACrC,iBAAiB,qBAAqB,SAAS;AACjD,CAAC;AAEY,MAAA,eAAeC,6BAAsB,OAAO;AAAA,EACvD,uBAAuBD,IAAA,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,sBAAsBA,IAAA,EACnB,OAA6B,CAAC,MAAM;AAC5B,WAAA,2BAA2B,MAAM,CAAC;AAAA,EAC1C,CAAA,EACA,SAAS;AACd,CAAC;AAEY,MAAA,YAAY,CAAC,cAA+B,SAAiB;AAClE,QAAA,SAASE,gBAAAA,UAAmB,cAAc,IAAI;AAEpD,SAAO,aAAa,MAAM,EAAE,GAAG,QAAQ,GAAG,cAAc;AAC1D;;;;"}
1
+ {"version":3,"file":"config.cjs","sources":["../../../src/core/config.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n configSchema as generatorConfigSchema,\n getConfig as getGeneratorConfig,\n} from '@tanstack/router-generator'\nimport type { RegisteredRouter, RouteIds } from '@tanstack/router-core'\nimport type { CodeSplitGroupings } from './constants'\n\nexport const splitGroupingsSchema = z\n .array(\n z.array(\n z.union([\n z.literal('loader'),\n z.literal('component'),\n z.literal('pendingComponent'),\n z.literal('errorComponent'),\n z.literal('notFoundComponent'),\n ]),\n ),\n {\n message:\n \" Must be an Array of Arrays containing the split groupings. i.e. [['component'], ['pendingComponent'], ['errorComponent', 'notFoundComponent']]\",\n },\n )\n .superRefine((val, ctx) => {\n const flattened = val.flat()\n const unique = [...new Set(flattened)]\n\n // Elements must be unique,\n // ie. this shouldn't be allows [['component'], ['component', 'loader']]\n if (unique.length !== flattened.length) {\n ctx.addIssue({\n code: 'custom',\n message:\n \" Split groupings must be unique and not repeated. i.e. i.e. [['component'], ['pendingComponent'], ['errorComponent', 'notFoundComponent']].\" +\n `\\n You input was: ${JSON.stringify(val)}.`,\n })\n }\n })\n\nexport type CodeSplittingOptions = {\n /**\n * Use this function to programmatically control the code splitting behavior\n * based on the `routeId` for each route.\n *\n * If you just need to change the default behavior, you can use the `defaultBehavior` option.\n * @param params\n */\n splitBehavior?: (params: {\n routeId: RouteIds<RegisteredRouter['routeTree']>\n }) => CodeSplitGroupings | undefined | void\n\n /**\n * The default/global configuration to control your code splitting behavior per route.\n * @default [['component'],['pendingComponent'],['errorComponent'],['notFoundComponent']]\n */\n defaultBehavior?: CodeSplitGroupings\n}\n\nconst codeSplittingOptionsSchema = z.object({\n splitBehavior: z.function().optional(),\n defaultBehavior: splitGroupingsSchema.optional(),\n})\n\nexport const configSchema = generatorConfigSchema.extend({\n enableRouteGeneration: z.boolean().optional(),\n codeSplittingOptions: z\n .custom<CodeSplittingOptions>((v) => {\n return codeSplittingOptionsSchema.parse(v)\n })\n .optional(),\n})\n\nexport const getConfig = (inlineConfig: Partial<Config>, root: string) => {\n const config = getGeneratorConfig(inlineConfig, root)\n\n return configSchema.parse({ ...config, ...inlineConfig })\n}\n\nexport type Config = z.infer<typeof configSchema>\nexport type ConfigInput = z.input<typeof configSchema>\nexport type ConfigOutput = z.output<typeof configSchema>\n"],"names":["z","generatorConfigSchema","getGeneratorConfig"],"mappings":";;;;AAQO,MAAM,uBAAuBA,IACjC,EAAA;AAAA,EACCA,IAAAA,EAAE;AAAA,IACAA,IAAAA,EAAE,MAAM;AAAA,MACNA,IAAA,EAAE,QAAQ,QAAQ;AAAA,MAClBA,IAAA,EAAE,QAAQ,WAAW;AAAA,MACrBA,IAAA,EAAE,QAAQ,kBAAkB;AAAA,MAC5BA,IAAA,EAAE,QAAQ,gBAAgB;AAAA,MAC1BA,IAAA,EAAE,QAAQ,mBAAmB;AAAA,IAC9B,CAAA;AAAA,EACH;AAAA,EACA;AAAA,IACE,SACE;AAAA,EAAA;AAEN,EACC,YAAY,CAAC,KAAK,QAAQ;AACnB,QAAA,YAAY,IAAI,KAAK;AAC3B,QAAM,SAAS,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC;AAIjC,MAAA,OAAO,WAAW,UAAU,QAAQ;AACtC,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,SACE;AAAA,mBACsB,KAAK,UAAU,GAAG,CAAC;AAAA,IAAA,CAC5C;AAAA,EAAA;AAEL,CAAC;AAqBH,MAAM,6BAA6BA,MAAE,OAAO;AAAA,EAC1C,eAAeA,IAAA,EAAE,SAAS,EAAE,SAAS;AAAA,EACrC,iBAAiB,qBAAqB,SAAS;AACjD,CAAC;AAEY,MAAA,eAAeC,6BAAsB,OAAO;AAAA,EACvD,uBAAuBD,IAAA,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,sBAAsBA,IAAA,EACnB,OAA6B,CAAC,MAAM;AAC5B,WAAA,2BAA2B,MAAM,CAAC;AAAA,EAC1C,CAAA,EACA,SAAS;AACd,CAAC;AAEY,MAAA,YAAY,CAAC,cAA+B,SAAiB;AAClE,QAAA,SAASE,gBAAAA,UAAmB,cAAc,IAAI;AAEpD,SAAO,aAAa,MAAM,EAAE,GAAG,QAAQ,GAAG,cAAc;AAC1D;;;;"}
@@ -158,3 +158,5 @@ export declare const getConfig: (inlineConfig: Partial<Config>, root: string) =>
158
158
  } | undefined;
159
159
  };
160
160
  export type Config = z.infer<typeof configSchema>;
161
+ export type ConfigInput = z.input<typeof configSchema>;
162
+ export type ConfigOutput = z.output<typeof configSchema>;
@@ -22,7 +22,7 @@ const routeHmrStatement = template__namespace.statement(
22
22
  `
23
23
  if (import.meta.hot) {
24
24
  import.meta.hot.accept((newModule) => {
25
- if (newModule.Route && typeof newModule.Route.clone === 'function') {
25
+ if (newModule && newModule.Route && typeof newModule.Route.clone === 'function') {
26
26
  newModule.Route.clone(Route)
27
27
  }
28
28
  })
@@ -1 +1 @@
1
- {"version":3,"file":"route-hmr-statement.cjs","sources":["../../../src/core/route-hmr-statement.ts"],"sourcesContent":["import * as template from '@babel/template'\n\nexport const routeHmrStatement = template.statement(\n `\nif (import.meta.hot) {\n import.meta.hot.accept((newModule) => {\n if (newModule.Route && typeof newModule.Route.clone === 'function') {\n newModule.Route.clone(Route)\n }\n })\n}\n`,\n)()\n"],"names":["template"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEO,MAAM,oBAAoBA,oBAAS;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASF,EAAE;;"}
1
+ {"version":3,"file":"route-hmr-statement.cjs","sources":["../../../src/core/route-hmr-statement.ts"],"sourcesContent":["import * as template from '@babel/template'\n\nexport const routeHmrStatement = template.statement(\n `\nif (import.meta.hot) {\n import.meta.hot.accept((newModule) => {\n if (newModule && newModule.Route && typeof newModule.Route.clone === 'function') {\n newModule.Route.clone(Route)\n }\n })\n}\n`,\n)()\n"],"names":["template"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEO,MAAM,oBAAoBA,oBAAS;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASF,EAAE;;"}
@@ -4,6 +4,7 @@ const config = require("./core/config.cjs");
4
4
  const routerCodeSplitterPlugin = require("./core/router-code-splitter-plugin.cjs");
5
5
  const routerGeneratorPlugin = require("./core/router-generator-plugin.cjs");
6
6
  exports.configSchema = config.configSchema;
7
+ exports.getConfig = config.getConfig;
7
8
  exports.unpluginRouterCodeSplitterFactory = routerCodeSplitterPlugin.unpluginRouterCodeSplitterFactory;
8
9
  exports.unpluginRouterGeneratorFactory = routerGeneratorPlugin.unpluginRouterGeneratorFactory;
9
10
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- export { configSchema } from './core/config.cjs';
1
+ export { configSchema, getConfig } from './core/config.cjs';
2
2
  export { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin.cjs';
3
3
  export { unpluginRouterGeneratorFactory } from './core/router-generator-plugin.cjs';
4
- export type { Config } from './core/config.cjs';
4
+ export type { Config, ConfigInput, ConfigOutput } from './core/config.cjs';
package/dist/cjs/vite.cjs CHANGED
@@ -5,18 +5,21 @@ const config = require("./core/config.cjs");
5
5
  const routerCodeSplitterPlugin = require("./core/router-code-splitter-plugin.cjs");
6
6
  const routerGeneratorPlugin = require("./core/router-generator-plugin.cjs");
7
7
  const routerComposedPlugin = require("./core/router-composed-plugin.cjs");
8
- const TanStackRouterGeneratorVite = unplugin.createVitePlugin(
9
- routerGeneratorPlugin.unpluginRouterGeneratorFactory
8
+ const routeAutoimportPlugin = require("./core/route-autoimport-plugin.cjs");
9
+ const tanstackRouterAutoImport = unplugin.createVitePlugin(
10
+ routeAutoimportPlugin.unpluginRouteAutoImportFactory
10
11
  );
11
- const TanStackRouterCodeSplitterVite = unplugin.createVitePlugin(
12
+ const tanstackRouterGenerator = unplugin.createVitePlugin(routerGeneratorPlugin.unpluginRouterGeneratorFactory);
13
+ const tanStackRouterCodeSplitter = unplugin.createVitePlugin(
12
14
  routerCodeSplitterPlugin.unpluginRouterCodeSplitterFactory
13
15
  );
14
- const TanStackRouterVite = unplugin.createVitePlugin(routerComposedPlugin.unpluginRouterComposedFactory);
15
- const tanstackRouter = TanStackRouterVite;
16
+ const tanstackRouter = unplugin.createVitePlugin(routerComposedPlugin.unpluginRouterComposedFactory);
17
+ const TanStackRouterVite = tanstackRouter;
16
18
  exports.configSchema = config.configSchema;
17
- exports.TanStackRouterCodeSplitterVite = TanStackRouterCodeSplitterVite;
18
- exports.TanStackRouterGeneratorVite = TanStackRouterGeneratorVite;
19
19
  exports.TanStackRouterVite = TanStackRouterVite;
20
- exports.default = TanStackRouterVite;
20
+ exports.default = tanstackRouter;
21
+ exports.tanStackRouterCodeSplitter = tanStackRouterCodeSplitter;
21
22
  exports.tanstackRouter = tanstackRouter;
23
+ exports.tanstackRouterAutoImport = tanstackRouterAutoImport;
24
+ exports.tanstackRouterGenerator = tanstackRouterGenerator;
22
25
  //# sourceMappingURL=vite.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite.cjs","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":["createVitePlugin","unpluginRouterGeneratorFactory","unpluginRouterCodeSplitterFactory","unpluginRouterComposedFactory"],"mappings":";;;;;;;AAkBA,MAAM,8BAA8BA,SAAA;AAAA,EAClCC,sBAAAA;AACF;AAWA,MAAM,iCAAiCD,SAAA;AAAA,EACrCE,yBAAAA;AACF;AAWM,MAAA,qBAAqBF,0BAAiBG,qBAA6B,6BAAA;AACzE,MAAM,iBAAiB;;;;;;;"}
1
+ {"version":3,"file":"vite.cjs","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":["createVitePlugin","unpluginRouteAutoImportFactory","unpluginRouterGeneratorFactory","unpluginRouterCodeSplitterFactory","unpluginRouterComposedFactory"],"mappings":";;;;;;;;AASA,MAAM,2BAA2BA,SAAA;AAAA,EAC/BC,sBAAAA;AACF;AAWM,MAAA,0BAA0BD,0BAAiBE,sBAA8B,8BAAA;AAW/E,MAAM,6BAA6BF,SAAA;AAAA,EACjCG,yBAAAA;AACF;AAWM,MAAA,iBAAiBH,0BAAiBI,qBAA6B,6BAAA;AAKrE,MAAM,qBAAqB;;;;;;;;"}
@@ -1,14 +1,46 @@
1
1
  import { configSchema, Config } from './core/config.cjs';
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
+ disableManifestGeneration: boolean;
16
+ enableRouteTreeFormatting: boolean;
17
+ routeTreeFileFooter: string[];
18
+ enableRouteGeneration?: boolean | undefined;
19
+ codeSplittingOptions?: import('./core/config.cjs').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
+ }> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
2
34
  /**
3
35
  * @example
4
36
  * ```ts
5
37
  * export default defineConfig({
6
- * plugins: [TanStackRouterGeneratorVite()],
38
+ * plugins: [tanstackRouterGenerator()],
7
39
  * // ...
8
40
  * })
9
41
  * ```
10
42
  */
11
- declare const TanStackRouterGeneratorVite: (options?: Partial<{
43
+ declare const tanstackRouterGenerator: (options?: Partial<{
12
44
  target: "react" | "solid";
13
45
  routeFileIgnorePrefix: string;
14
46
  routesDirectory: string;
@@ -44,12 +76,12 @@ declare const TanStackRouterGeneratorVite: (options?: Partial<{
44
76
  * @example
45
77
  * ```ts
46
78
  * export default defineConfig({
47
- * plugins: [TanStackRouterCodeSplitterVite()],
79
+ * plugins: [tanStackRouterCodeSplitter()],
48
80
  * // ...
49
81
  * })
50
82
  * ```
51
83
  */
52
- declare const TanStackRouterCodeSplitterVite: (options?: Partial<{
84
+ declare const tanStackRouterCodeSplitter: (options?: Partial<{
53
85
  target: "react" | "solid";
54
86
  routeFileIgnorePrefix: string;
55
87
  routesDirectory: string;
@@ -85,12 +117,12 @@ declare const TanStackRouterCodeSplitterVite: (options?: Partial<{
85
117
  * @example
86
118
  * ```ts
87
119
  * export default defineConfig({
88
- * plugins: [TanStackRouterVite()],
120
+ * plugins: [tanstackRouter()],
89
121
  * // ...
90
122
  * })
91
123
  * ```
92
124
  */
93
- declare const TanStackRouterVite: (options?: Partial<{
125
+ declare const tanstackRouter: (options?: Partial<{
94
126
  target: "react" | "solid";
95
127
  routeFileIgnorePrefix: string;
96
128
  routesDirectory: string;
@@ -122,7 +154,10 @@ declare const TanStackRouterVite: (options?: Partial<{
122
154
  enableCodeSplitting?: boolean | undefined;
123
155
  } | undefined;
124
156
  }> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
125
- declare const tanstackRouter: (options?: Partial<{
157
+ /**
158
+ * @deprecated Use `tanstackRouter` instead.
159
+ */
160
+ declare const TanStackRouterVite: (options?: Partial<{
126
161
  target: "react" | "solid";
127
162
  routeFileIgnorePrefix: string;
128
163
  routesDirectory: string;
@@ -154,6 +189,6 @@ declare const tanstackRouter: (options?: Partial<{
154
189
  enableCodeSplitting?: boolean | undefined;
155
190
  } | undefined;
156
191
  }> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
157
- export default TanStackRouterVite;
158
- export { configSchema, TanStackRouterGeneratorVite, TanStackRouterCodeSplitterVite, TanStackRouterVite, tanstackRouter, };
192
+ export default tanstackRouter;
193
+ export { configSchema, tanstackRouterAutoImport, tanStackRouterCodeSplitter, tanstackRouterGenerator, TanStackRouterVite, tanstackRouter, };
159
194
  export type { Config };
@@ -158,3 +158,5 @@ export declare const getConfig: (inlineConfig: Partial<Config>, root: string) =>
158
158
  } | undefined;
159
159
  };
160
160
  export type Config = z.infer<typeof configSchema>;
161
+ export type ConfigInput = z.input<typeof configSchema>;
162
+ export type ConfigOutput = z.output<typeof configSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../../../src/core/config.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n configSchema as generatorConfigSchema,\n getConfig as getGeneratorConfig,\n} from '@tanstack/router-generator'\nimport type { RegisteredRouter, RouteIds } from '@tanstack/router-core'\nimport type { CodeSplitGroupings } from './constants'\n\nexport const splitGroupingsSchema = z\n .array(\n z.array(\n z.union([\n z.literal('loader'),\n z.literal('component'),\n z.literal('pendingComponent'),\n z.literal('errorComponent'),\n z.literal('notFoundComponent'),\n ]),\n ),\n {\n message:\n \" Must be an Array of Arrays containing the split groupings. i.e. [['component'], ['pendingComponent'], ['errorComponent', 'notFoundComponent']]\",\n },\n )\n .superRefine((val, ctx) => {\n const flattened = val.flat()\n const unique = [...new Set(flattened)]\n\n // Elements must be unique,\n // ie. this shouldn't be allows [['component'], ['component', 'loader']]\n if (unique.length !== flattened.length) {\n ctx.addIssue({\n code: 'custom',\n message:\n \" Split groupings must be unique and not repeated. i.e. i.e. [['component'], ['pendingComponent'], ['errorComponent', 'notFoundComponent']].\" +\n `\\n You input was: ${JSON.stringify(val)}.`,\n })\n }\n })\n\nexport type CodeSplittingOptions = {\n /**\n * Use this function to programmatically control the code splitting behavior\n * based on the `routeId` for each route.\n *\n * If you just need to change the default behavior, you can use the `defaultBehavior` option.\n * @param params\n */\n splitBehavior?: (params: {\n routeId: RouteIds<RegisteredRouter['routeTree']>\n }) => CodeSplitGroupings | undefined | void\n\n /**\n * The default/global configuration to control your code splitting behavior per route.\n * @default [['component'],['pendingComponent'],['errorComponent'],['notFoundComponent']]\n */\n defaultBehavior?: CodeSplitGroupings\n}\n\nconst codeSplittingOptionsSchema = z.object({\n splitBehavior: z.function().optional(),\n defaultBehavior: splitGroupingsSchema.optional(),\n})\n\nexport const configSchema = generatorConfigSchema.extend({\n enableRouteGeneration: z.boolean().optional(),\n codeSplittingOptions: z\n .custom<CodeSplittingOptions>((v) => {\n return codeSplittingOptionsSchema.parse(v)\n })\n .optional(),\n})\n\nexport const getConfig = (inlineConfig: Partial<Config>, root: string) => {\n const config = getGeneratorConfig(inlineConfig, root)\n\n return configSchema.parse({ ...config, ...inlineConfig })\n}\n\nexport type Config = z.infer<typeof configSchema>\n"],"names":["generatorConfigSchema","getGeneratorConfig"],"mappings":";;AAQO,MAAM,uBAAuB,EACjC;AAAA,EACC,EAAE;AAAA,IACA,EAAE,MAAM;AAAA,MACN,EAAE,QAAQ,QAAQ;AAAA,MAClB,EAAE,QAAQ,WAAW;AAAA,MACrB,EAAE,QAAQ,kBAAkB;AAAA,MAC5B,EAAE,QAAQ,gBAAgB;AAAA,MAC1B,EAAE,QAAQ,mBAAmB;AAAA,IAC9B,CAAA;AAAA,EACH;AAAA,EACA;AAAA,IACE,SACE;AAAA,EAAA;AAEN,EACC,YAAY,CAAC,KAAK,QAAQ;AACnB,QAAA,YAAY,IAAI,KAAK;AAC3B,QAAM,SAAS,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC;AAIjC,MAAA,OAAO,WAAW,UAAU,QAAQ;AACtC,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,SACE;AAAA,mBACsB,KAAK,UAAU,GAAG,CAAC;AAAA,IAAA,CAC5C;AAAA,EAAA;AAEL,CAAC;AAqBH,MAAM,6BAA6B,EAAE,OAAO;AAAA,EAC1C,eAAe,EAAE,SAAS,EAAE,SAAS;AAAA,EACrC,iBAAiB,qBAAqB,SAAS;AACjD,CAAC;AAEY,MAAA,eAAeA,eAAsB,OAAO;AAAA,EACvD,uBAAuB,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,sBAAsB,EACnB,OAA6B,CAAC,MAAM;AAC5B,WAAA,2BAA2B,MAAM,CAAC;AAAA,EAC1C,CAAA,EACA,SAAS;AACd,CAAC;AAEY,MAAA,YAAY,CAAC,cAA+B,SAAiB;AAClE,QAAA,SAASC,YAAmB,cAAc,IAAI;AAEpD,SAAO,aAAa,MAAM,EAAE,GAAG,QAAQ,GAAG,cAAc;AAC1D;"}
1
+ {"version":3,"file":"config.js","sources":["../../../src/core/config.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n configSchema as generatorConfigSchema,\n getConfig as getGeneratorConfig,\n} from '@tanstack/router-generator'\nimport type { RegisteredRouter, RouteIds } from '@tanstack/router-core'\nimport type { CodeSplitGroupings } from './constants'\n\nexport const splitGroupingsSchema = z\n .array(\n z.array(\n z.union([\n z.literal('loader'),\n z.literal('component'),\n z.literal('pendingComponent'),\n z.literal('errorComponent'),\n z.literal('notFoundComponent'),\n ]),\n ),\n {\n message:\n \" Must be an Array of Arrays containing the split groupings. i.e. [['component'], ['pendingComponent'], ['errorComponent', 'notFoundComponent']]\",\n },\n )\n .superRefine((val, ctx) => {\n const flattened = val.flat()\n const unique = [...new Set(flattened)]\n\n // Elements must be unique,\n // ie. this shouldn't be allows [['component'], ['component', 'loader']]\n if (unique.length !== flattened.length) {\n ctx.addIssue({\n code: 'custom',\n message:\n \" Split groupings must be unique and not repeated. i.e. i.e. [['component'], ['pendingComponent'], ['errorComponent', 'notFoundComponent']].\" +\n `\\n You input was: ${JSON.stringify(val)}.`,\n })\n }\n })\n\nexport type CodeSplittingOptions = {\n /**\n * Use this function to programmatically control the code splitting behavior\n * based on the `routeId` for each route.\n *\n * If you just need to change the default behavior, you can use the `defaultBehavior` option.\n * @param params\n */\n splitBehavior?: (params: {\n routeId: RouteIds<RegisteredRouter['routeTree']>\n }) => CodeSplitGroupings | undefined | void\n\n /**\n * The default/global configuration to control your code splitting behavior per route.\n * @default [['component'],['pendingComponent'],['errorComponent'],['notFoundComponent']]\n */\n defaultBehavior?: CodeSplitGroupings\n}\n\nconst codeSplittingOptionsSchema = z.object({\n splitBehavior: z.function().optional(),\n defaultBehavior: splitGroupingsSchema.optional(),\n})\n\nexport const configSchema = generatorConfigSchema.extend({\n enableRouteGeneration: z.boolean().optional(),\n codeSplittingOptions: z\n .custom<CodeSplittingOptions>((v) => {\n return codeSplittingOptionsSchema.parse(v)\n })\n .optional(),\n})\n\nexport const getConfig = (inlineConfig: Partial<Config>, root: string) => {\n const config = getGeneratorConfig(inlineConfig, root)\n\n return configSchema.parse({ ...config, ...inlineConfig })\n}\n\nexport type Config = z.infer<typeof configSchema>\nexport type ConfigInput = z.input<typeof configSchema>\nexport type ConfigOutput = z.output<typeof configSchema>\n"],"names":["generatorConfigSchema","getGeneratorConfig"],"mappings":";;AAQO,MAAM,uBAAuB,EACjC;AAAA,EACC,EAAE;AAAA,IACA,EAAE,MAAM;AAAA,MACN,EAAE,QAAQ,QAAQ;AAAA,MAClB,EAAE,QAAQ,WAAW;AAAA,MACrB,EAAE,QAAQ,kBAAkB;AAAA,MAC5B,EAAE,QAAQ,gBAAgB;AAAA,MAC1B,EAAE,QAAQ,mBAAmB;AAAA,IAC9B,CAAA;AAAA,EACH;AAAA,EACA;AAAA,IACE,SACE;AAAA,EAAA;AAEN,EACC,YAAY,CAAC,KAAK,QAAQ;AACnB,QAAA,YAAY,IAAI,KAAK;AAC3B,QAAM,SAAS,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC;AAIjC,MAAA,OAAO,WAAW,UAAU,QAAQ;AACtC,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,SACE;AAAA,mBACsB,KAAK,UAAU,GAAG,CAAC;AAAA,IAAA,CAC5C;AAAA,EAAA;AAEL,CAAC;AAqBH,MAAM,6BAA6B,EAAE,OAAO;AAAA,EAC1C,eAAe,EAAE,SAAS,EAAE,SAAS;AAAA,EACrC,iBAAiB,qBAAqB,SAAS;AACjD,CAAC;AAEY,MAAA,eAAeA,eAAsB,OAAO;AAAA,EACvD,uBAAuB,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,sBAAsB,EACnB,OAA6B,CAAC,MAAM;AAC5B,WAAA,2BAA2B,MAAM,CAAC;AAAA,EAC1C,CAAA,EACA,SAAS;AACd,CAAC;AAEY,MAAA,YAAY,CAAC,cAA+B,SAAiB;AAClE,QAAA,SAASC,YAAmB,cAAc,IAAI;AAEpD,SAAO,aAAa,MAAM,EAAE,GAAG,QAAQ,GAAG,cAAc;AAC1D;"}
@@ -3,7 +3,7 @@ const routeHmrStatement = template.statement(
3
3
  `
4
4
  if (import.meta.hot) {
5
5
  import.meta.hot.accept((newModule) => {
6
- if (newModule.Route && typeof newModule.Route.clone === 'function') {
6
+ if (newModule && newModule.Route && typeof newModule.Route.clone === 'function') {
7
7
  newModule.Route.clone(Route)
8
8
  }
9
9
  })
@@ -1 +1 @@
1
- {"version":3,"file":"route-hmr-statement.js","sources":["../../../src/core/route-hmr-statement.ts"],"sourcesContent":["import * as template from '@babel/template'\n\nexport const routeHmrStatement = template.statement(\n `\nif (import.meta.hot) {\n import.meta.hot.accept((newModule) => {\n if (newModule.Route && typeof newModule.Route.clone === 'function') {\n newModule.Route.clone(Route)\n }\n })\n}\n`,\n)()\n"],"names":[],"mappings":";AAEO,MAAM,oBAAoB,SAAS;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASF,EAAE;"}
1
+ {"version":3,"file":"route-hmr-statement.js","sources":["../../../src/core/route-hmr-statement.ts"],"sourcesContent":["import * as template from '@babel/template'\n\nexport const routeHmrStatement = template.statement(\n `\nif (import.meta.hot) {\n import.meta.hot.accept((newModule) => {\n if (newModule && newModule.Route && typeof newModule.Route.clone === 'function') {\n newModule.Route.clone(Route)\n }\n })\n}\n`,\n)()\n"],"names":[],"mappings":";AAEO,MAAM,oBAAoB,SAAS;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASF,EAAE;"}
@@ -1,4 +1,4 @@
1
- export { configSchema } from './core/config.js';
1
+ export { configSchema, getConfig } from './core/config.js';
2
2
  export { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin.js';
3
3
  export { unpluginRouterGeneratorFactory } from './core/router-generator-plugin.js';
4
- export type { Config } from './core/config.js';
4
+ export type { Config, ConfigInput, ConfigOutput } from './core/config.js';
package/dist/esm/index.js CHANGED
@@ -1,8 +1,9 @@
1
- import { configSchema } from "./core/config.js";
1
+ import { configSchema, getConfig } from "./core/config.js";
2
2
  import { unpluginRouterCodeSplitterFactory } from "./core/router-code-splitter-plugin.js";
3
3
  import { unpluginRouterGeneratorFactory } from "./core/router-generator-plugin.js";
4
4
  export {
5
5
  configSchema,
6
+ getConfig,
6
7
  unpluginRouterCodeSplitterFactory,
7
8
  unpluginRouterGeneratorFactory
8
9
  };
@@ -1,14 +1,46 @@
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
+ disableManifestGeneration: boolean;
16
+ enableRouteTreeFormatting: boolean;
17
+ routeTreeFileFooter: 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
+ }> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
2
34
  /**
3
35
  * @example
4
36
  * ```ts
5
37
  * export default defineConfig({
6
- * plugins: [TanStackRouterGeneratorVite()],
38
+ * plugins: [tanstackRouterGenerator()],
7
39
  * // ...
8
40
  * })
9
41
  * ```
10
42
  */
11
- declare const TanStackRouterGeneratorVite: (options?: Partial<{
43
+ declare const tanstackRouterGenerator: (options?: Partial<{
12
44
  target: "react" | "solid";
13
45
  routeFileIgnorePrefix: string;
14
46
  routesDirectory: string;
@@ -44,12 +76,12 @@ declare const TanStackRouterGeneratorVite: (options?: Partial<{
44
76
  * @example
45
77
  * ```ts
46
78
  * export default defineConfig({
47
- * plugins: [TanStackRouterCodeSplitterVite()],
79
+ * plugins: [tanStackRouterCodeSplitter()],
48
80
  * // ...
49
81
  * })
50
82
  * ```
51
83
  */
52
- declare const TanStackRouterCodeSplitterVite: (options?: Partial<{
84
+ declare const tanStackRouterCodeSplitter: (options?: Partial<{
53
85
  target: "react" | "solid";
54
86
  routeFileIgnorePrefix: string;
55
87
  routesDirectory: string;
@@ -85,12 +117,12 @@ declare const TanStackRouterCodeSplitterVite: (options?: Partial<{
85
117
  * @example
86
118
  * ```ts
87
119
  * export default defineConfig({
88
- * plugins: [TanStackRouterVite()],
120
+ * plugins: [tanstackRouter()],
89
121
  * // ...
90
122
  * })
91
123
  * ```
92
124
  */
93
- declare const TanStackRouterVite: (options?: Partial<{
125
+ declare const tanstackRouter: (options?: Partial<{
94
126
  target: "react" | "solid";
95
127
  routeFileIgnorePrefix: string;
96
128
  routesDirectory: string;
@@ -122,7 +154,10 @@ declare const TanStackRouterVite: (options?: Partial<{
122
154
  enableCodeSplitting?: boolean | undefined;
123
155
  } | undefined;
124
156
  }> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
125
- declare const tanstackRouter: (options?: Partial<{
157
+ /**
158
+ * @deprecated Use `tanstackRouter` instead.
159
+ */
160
+ declare const TanStackRouterVite: (options?: Partial<{
126
161
  target: "react" | "solid";
127
162
  routeFileIgnorePrefix: string;
128
163
  routesDirectory: string;
@@ -154,6 +189,6 @@ declare const tanstackRouter: (options?: Partial<{
154
189
  enableCodeSplitting?: boolean | undefined;
155
190
  } | undefined;
156
191
  }> | undefined) => import('vite').Plugin<any> | import('vite').Plugin<any>[];
157
- export default TanStackRouterVite;
158
- export { configSchema, TanStackRouterGeneratorVite, TanStackRouterCodeSplitterVite, TanStackRouterVite, tanstackRouter, };
192
+ export default tanstackRouter;
193
+ export { configSchema, tanstackRouterAutoImport, tanStackRouterCodeSplitter, tanstackRouterGenerator, TanStackRouterVite, tanstackRouter, };
159
194
  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;"}
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.22",
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.121.0-alpha.1",
104
- "@tanstack/router-generator": "^1.121.0-alpha.1",
103
+ "@tanstack/router-core": "^1.121.0-alpha.22",
105
104
  "@tanstack/router-utils": "^1.121.0-alpha.2",
106
- "@tanstack/virtual-file-routes": "^1.121.0-alpha.1"
105
+ "@tanstack/virtual-file-routes": "^1.121.0-alpha.1",
106
+ "@tanstack/router-generator": "^1.121.0-alpha.22"
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.121.0-alpha.1"
113
+ "@tanstack/react-router": "^1.121.0-alpha.22"
114
114
  },
115
115
  "peerDependenciesMeta": {
116
116
  "@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
  })
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'
package/src/vite.ts CHANGED
@@ -4,32 +4,34 @@ import { configSchema } from './core/config'
4
4
  import { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin'
5
5
  import { unpluginRouterGeneratorFactory } from './core/router-generator-plugin'
6
6
  import { unpluginRouterComposedFactory } from './core/router-composed-plugin'
7
-
7
+ import { unpluginRouteAutoImportFactory } from './core/route-autoimport-plugin'
8
8
  import type { Config } from './core/config'
9
9
 
10
+ const tanstackRouterAutoImport = createVitePlugin(
11
+ unpluginRouteAutoImportFactory,
12
+ )
13
+
10
14
  /**
11
15
  * @example
12
16
  * ```ts
13
17
  * export default defineConfig({
14
- * plugins: [TanStackRouterGeneratorVite()],
18
+ * plugins: [tanstackRouterGenerator()],
15
19
  * // ...
16
20
  * })
17
21
  * ```
18
22
  */
19
- const TanStackRouterGeneratorVite = createVitePlugin(
20
- unpluginRouterGeneratorFactory,
21
- )
23
+ const tanstackRouterGenerator = createVitePlugin(unpluginRouterGeneratorFactory)
22
24
 
23
25
  /**
24
26
  * @example
25
27
  * ```ts
26
28
  * export default defineConfig({
27
- * plugins: [TanStackRouterCodeSplitterVite()],
29
+ * plugins: [tanStackRouterCodeSplitter()],
28
30
  * // ...
29
31
  * })
30
32
  * ```
31
33
  */
32
- const TanStackRouterCodeSplitterVite = createVitePlugin(
34
+ const tanStackRouterCodeSplitter = createVitePlugin(
33
35
  unpluginRouterCodeSplitterFactory,
34
36
  )
35
37
 
@@ -37,19 +39,24 @@ const TanStackRouterCodeSplitterVite = createVitePlugin(
37
39
  * @example
38
40
  * ```ts
39
41
  * export default defineConfig({
40
- * plugins: [TanStackRouterVite()],
42
+ * plugins: [tanstackRouter()],
41
43
  * // ...
42
44
  * })
43
45
  * ```
44
46
  */
45
- const TanStackRouterVite = createVitePlugin(unpluginRouterComposedFactory)
46
- const tanstackRouter = TanStackRouterVite
47
+ const tanstackRouter = createVitePlugin(unpluginRouterComposedFactory)
48
+
49
+ /**
50
+ * @deprecated Use `tanstackRouter` instead.
51
+ */
52
+ const TanStackRouterVite = tanstackRouter
47
53
 
48
- export default TanStackRouterVite
54
+ export default tanstackRouter
49
55
  export {
50
56
  configSchema,
51
- TanStackRouterGeneratorVite,
52
- TanStackRouterCodeSplitterVite,
57
+ tanstackRouterAutoImport,
58
+ tanStackRouterCodeSplitter,
59
+ tanstackRouterGenerator,
53
60
  TanStackRouterVite,
54
61
  tanstackRouter,
55
62
  }