@tanstack/router-plugin 1.51.6 → 1.52.0

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.
@@ -15,6 +15,8 @@ export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
15
15
  routeTreeFileHeader: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
16
16
  routeTreeFileFooter: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
17
17
  autoCodeSplitting: z.ZodOptional<z.ZodBoolean>;
18
+ indexToken: z.ZodDefault<z.ZodOptional<z.ZodString>>;
19
+ routeToken: z.ZodDefault<z.ZodOptional<z.ZodString>>;
18
20
  experimental: z.ZodOptional<z.ZodObject<{
19
21
  enableCodeSplitting: z.ZodOptional<z.ZodBoolean>;
20
22
  }, "strip", z.ZodTypeAny, {
@@ -37,6 +39,8 @@ export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
37
39
  apiBase: string;
38
40
  routeTreeFileHeader: string[];
39
41
  routeTreeFileFooter: string[];
42
+ indexToken: string;
43
+ routeToken: string;
40
44
  enableRouteGeneration?: boolean | undefined;
41
45
  routeFilePrefix?: string | undefined;
42
46
  routeFileIgnorePattern?: string | undefined;
@@ -61,6 +65,8 @@ export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
61
65
  routeTreeFileHeader?: string[] | undefined;
62
66
  routeTreeFileFooter?: string[] | undefined;
63
67
  autoCodeSplitting?: boolean | undefined;
68
+ indexToken?: string | undefined;
69
+ routeToken?: string | undefined;
64
70
  experimental?: {
65
71
  enableCodeSplitting?: boolean | undefined;
66
72
  } | undefined;
@@ -78,6 +84,8 @@ export declare const getConfig: (inlineConfig: Partial<Config>, root: string) =>
78
84
  apiBase: string;
79
85
  routeTreeFileHeader: string[];
80
86
  routeTreeFileFooter: string[];
87
+ indexToken: string;
88
+ routeToken: string;
81
89
  enableRouteGeneration?: boolean | undefined;
82
90
  routeFilePrefix?: string | undefined;
83
91
  routeFileIgnorePattern?: string | undefined;
@@ -119,7 +119,7 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
119
119
  vite: {
120
120
  configResolved(config$1) {
121
121
  ROOT = config$1.root;
122
- userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(config.getConfig(options, ROOT));
122
+ userConfig = config.getConfig(options, ROOT);
123
123
  }
124
124
  },
125
125
  rspack(compiler) {
@@ -137,7 +137,7 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
137
137
  }
138
138
  );
139
139
  });
140
- userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(config.getConfig(options, ROOT));
140
+ userConfig = config.getConfig(options, ROOT);
141
141
  },
142
142
  webpack(compiler) {
143
143
  ROOT = process.cwd();
@@ -154,7 +154,7 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
154
154
  }
155
155
  );
156
156
  });
157
- userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(config.getConfig(options, ROOT));
157
+ userConfig = config.getConfig(options, ROOT);
158
158
  if (userConfig.autoCodeSplitting && compiler.options.mode === "production") {
159
159
  compiler.hooks.done.tap(PLUGIN_NAME, () => {
160
160
  console.info("✅ " + PLUGIN_NAME + ": code-splitting done!");
@@ -166,19 +166,5 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
166
166
  }
167
167
  };
168
168
  };
169
- function CHECK_USER_FLAGS_TO_BE_CHANGED(config2) {
170
- var _a;
171
- if (typeof ((_a = config2.experimental) == null ? void 0 : _a.enableCodeSplitting) !== "undefined") {
172
- const message = `
173
- ------
174
- ⚠️ ⚠️ ⚠️
175
- ERROR: The "experimental.enableCodeSplitting" flag has been made stable and is now "autoCodeSplitting". Please update your configuration file to use "autoCodeSplitting" instead of "experimental.enableCodeSplitting".
176
- ------
177
- `;
178
- console.error(message);
179
- throw new Error(message);
180
- }
181
- return config2;
182
- }
183
169
  exports.unpluginRouterCodeSplitterFactory = unpluginRouterCodeSplitterFactory;
184
170
  //# sourceMappingURL=router-code-splitter-plugin.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"router-code-splitter-plugin.cjs","sources":["../../../src/core/router-code-splitter-plugin.ts"],"sourcesContent":["import { isAbsolute, join } from 'node:path'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\n\nimport { getConfig } from './config'\nimport {\n compileCodeSplitReferenceRoute,\n compileCodeSplitVirtualRoute,\n} from './code-splitter/compilers'\nimport { splitPrefix } from './constants'\n\nimport type { Config } from './config'\nimport type { UnpluginContextMeta, UnpluginFactory } from 'unplugin'\n\nfunction capitalizeFirst(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nfunction fileIsInRoutesDirectory(filePath: string, routesDirectory: string) {\n const routesDirectoryPath = isAbsolute(routesDirectory)\n ? routesDirectory\n : join(process.cwd(), routesDirectory)\n\n return filePath.startsWith(routesDirectoryPath)\n}\n\ntype BannedBeforeExternalPlugin = {\n identifier: string\n pkg: string\n usage: string\n frameworks: Array<UnpluginContextMeta['framework']>\n}\n\nconst bannedBeforeExternalPlugins: Array<BannedBeforeExternalPlugin> = [\n {\n identifier: '@react-refresh',\n pkg: '@vitejs/plugin-react',\n usage: 'viteReact()',\n frameworks: ['vite'],\n },\n]\n\nclass FoundPluginInBeforeCode extends Error {\n constructor(externalPlugin: BannedBeforeExternalPlugin, framework: string) {\n super(`We detected that the '${externalPlugin.pkg}' was passed before '@tanstack/router-plugin'. Please make sure that '@tanstack/router-plugin' is passed before '${externalPlugin.pkg}' and try again: \ne.g.\nplugins: [\n TanStackRouter${capitalizeFirst(framework)}(), // Place this before ${externalPlugin.usage}\n ${externalPlugin.usage},\n]\n`)\n }\n}\n\nconst PLUGIN_NAME = 'unplugin:router-code-splitter'\nconst JoinedSplitPrefix = splitPrefix + ':'\n\nexport const unpluginRouterCodeSplitterFactory: UnpluginFactory<\n Partial<Config> | undefined\n> = (options = {}, { framework }) => {\n const debug = Boolean(process.env.TSR_VITE_DEBUG)\n\n let ROOT: string = process.cwd()\n let userConfig = options as Config\n\n const handleSplittingFile = (code: string, id: string) => {\n if (debug) console.info('Splitting route: ', id)\n\n const compiledVirtualRoute = compileCodeSplitVirtualRoute({\n code,\n root: ROOT,\n filename: id,\n })\n\n if (debug) console.info('')\n if (debug) console.info('Split Output')\n if (debug) console.info('')\n if (debug) console.info(compiledVirtualRoute.code)\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n\n return compiledVirtualRoute\n }\n\n const handleCompilingFile = (code: string, id: string) => {\n if (debug) console.info('Handling createRoute: ', id)\n\n const compiledReferenceRoute = compileCodeSplitReferenceRoute({\n code,\n root: ROOT,\n filename: id,\n })\n\n if (debug) console.info('')\n if (debug) console.info('Compiled Output')\n if (debug) console.info('')\n if (debug) console.info(compiledReferenceRoute.code)\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n\n return compiledReferenceRoute\n }\n\n return {\n name: 'router-code-splitter-plugin',\n enforce: 'pre',\n\n resolveId(source) {\n if (!userConfig.autoCodeSplitting) {\n return null\n }\n\n if (source.startsWith(splitPrefix + ':')) {\n return source.replace(splitPrefix + ':', '')\n }\n return null\n },\n\n transform(code, id) {\n if (!userConfig.autoCodeSplitting) {\n return null\n }\n\n const url = pathToFileURL(id)\n url.searchParams.delete('v')\n id = fileURLToPath(url).replace(/\\\\/g, '/')\n\n if (id.includes(splitPrefix)) {\n return handleSplittingFile(code, id)\n } else if (\n fileIsInRoutesDirectory(id, userConfig.routesDirectory) &&\n (code.includes('createRoute(') || code.includes('createFileRoute('))\n ) {\n for (const externalPlugin of bannedBeforeExternalPlugins) {\n if (!externalPlugin.frameworks.includes(framework)) {\n continue\n }\n\n if (code.includes(externalPlugin.identifier)) {\n throw new FoundPluginInBeforeCode(externalPlugin, framework)\n }\n }\n\n return handleCompilingFile(code, id)\n }\n\n return null\n },\n\n transformInclude(transformId) {\n if (!userConfig.autoCodeSplitting) {\n return undefined\n }\n\n let id = transformId\n\n if (id.startsWith(JoinedSplitPrefix)) {\n id = id.replace(JoinedSplitPrefix, '')\n }\n\n if (\n fileIsInRoutesDirectory(id, userConfig.routesDirectory) ||\n id.includes(splitPrefix)\n ) {\n return true\n }\n return false\n },\n\n vite: {\n configResolved(config) {\n ROOT = config.root\n\n userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT))\n },\n },\n\n rspack(compiler) {\n ROOT = process.cwd()\n\n compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {\n self.normalModuleFactory.hooks.beforeResolve.tap(\n PLUGIN_NAME,\n (resolveData: { request: string }) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT))\n },\n\n webpack(compiler) {\n ROOT = process.cwd()\n\n compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {\n self.normalModuleFactory.hooks.beforeResolve.tap(\n PLUGIN_NAME,\n (resolveData: { request: string }) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT))\n\n if (\n userConfig.autoCodeSplitting &&\n compiler.options.mode === 'production'\n ) {\n compiler.hooks.done.tap(PLUGIN_NAME, () => {\n console.info('✅ ' + PLUGIN_NAME + ': code-splitting done!')\n setTimeout(() => {\n process.exit(0)\n })\n })\n }\n },\n }\n}\n\nfunction CHECK_USER_FLAGS_TO_BE_CHANGED(config: Config): Config {\n if (typeof config.experimental?.enableCodeSplitting !== 'undefined') {\n const message = `\n------\n⚠️ ⚠️ ⚠️\nERROR: The \"experimental.enableCodeSplitting\" flag has been made stable and is now \"autoCodeSplitting\". Please update your configuration file to use \"autoCodeSplitting\" instead of \"experimental.enableCodeSplitting\".\n------\n`\n console.error(message)\n throw new Error(message)\n }\n\n return config\n}\n"],"names":["isAbsolute","join","splitPrefix","compileCodeSplitVirtualRoute","compileCodeSplitReferenceRoute","pathToFileURL","fileURLToPath","config","getConfig"],"mappings":"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"}
1
+ {"version":3,"file":"router-code-splitter-plugin.cjs","sources":["../../../src/core/router-code-splitter-plugin.ts"],"sourcesContent":["import { isAbsolute, join } from 'node:path'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\n\nimport { getConfig } from './config'\nimport {\n compileCodeSplitReferenceRoute,\n compileCodeSplitVirtualRoute,\n} from './code-splitter/compilers'\nimport { splitPrefix } from './constants'\n\nimport type { Config } from './config'\nimport type { UnpluginContextMeta, UnpluginFactory } from 'unplugin'\n\nfunction capitalizeFirst(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nfunction fileIsInRoutesDirectory(filePath: string, routesDirectory: string) {\n const routesDirectoryPath = isAbsolute(routesDirectory)\n ? routesDirectory\n : join(process.cwd(), routesDirectory)\n\n return filePath.startsWith(routesDirectoryPath)\n}\n\ntype BannedBeforeExternalPlugin = {\n identifier: string\n pkg: string\n usage: string\n frameworks: Array<UnpluginContextMeta['framework']>\n}\n\nconst bannedBeforeExternalPlugins: Array<BannedBeforeExternalPlugin> = [\n {\n identifier: '@react-refresh',\n pkg: '@vitejs/plugin-react',\n usage: 'viteReact()',\n frameworks: ['vite'],\n },\n]\n\nclass FoundPluginInBeforeCode extends Error {\n constructor(externalPlugin: BannedBeforeExternalPlugin, framework: string) {\n super(`We detected that the '${externalPlugin.pkg}' was passed before '@tanstack/router-plugin'. Please make sure that '@tanstack/router-plugin' is passed before '${externalPlugin.pkg}' and try again: \ne.g.\nplugins: [\n TanStackRouter${capitalizeFirst(framework)}(), // Place this before ${externalPlugin.usage}\n ${externalPlugin.usage},\n]\n`)\n }\n}\n\nconst PLUGIN_NAME = 'unplugin:router-code-splitter'\nconst JoinedSplitPrefix = splitPrefix + ':'\n\nexport const unpluginRouterCodeSplitterFactory: UnpluginFactory<\n Partial<Config> | undefined\n> = (options = {}, { framework }) => {\n const debug = Boolean(process.env.TSR_VITE_DEBUG)\n\n let ROOT: string = process.cwd()\n let userConfig = options as Config\n\n const handleSplittingFile = (code: string, id: string) => {\n if (debug) console.info('Splitting route: ', id)\n\n const compiledVirtualRoute = compileCodeSplitVirtualRoute({\n code,\n root: ROOT,\n filename: id,\n })\n\n if (debug) console.info('')\n if (debug) console.info('Split Output')\n if (debug) console.info('')\n if (debug) console.info(compiledVirtualRoute.code)\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n\n return compiledVirtualRoute\n }\n\n const handleCompilingFile = (code: string, id: string) => {\n if (debug) console.info('Handling createRoute: ', id)\n\n const compiledReferenceRoute = compileCodeSplitReferenceRoute({\n code,\n root: ROOT,\n filename: id,\n })\n\n if (debug) console.info('')\n if (debug) console.info('Compiled Output')\n if (debug) console.info('')\n if (debug) console.info(compiledReferenceRoute.code)\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n\n return compiledReferenceRoute\n }\n\n return {\n name: 'router-code-splitter-plugin',\n enforce: 'pre',\n\n resolveId(source) {\n if (!userConfig.autoCodeSplitting) {\n return null\n }\n\n if (source.startsWith(splitPrefix + ':')) {\n return source.replace(splitPrefix + ':', '')\n }\n return null\n },\n\n transform(code, id) {\n if (!userConfig.autoCodeSplitting) {\n return null\n }\n\n const url = pathToFileURL(id)\n url.searchParams.delete('v')\n id = fileURLToPath(url).replace(/\\\\/g, '/')\n\n if (id.includes(splitPrefix)) {\n return handleSplittingFile(code, id)\n } else if (\n fileIsInRoutesDirectory(id, userConfig.routesDirectory) &&\n (code.includes('createRoute(') || code.includes('createFileRoute('))\n ) {\n for (const externalPlugin of bannedBeforeExternalPlugins) {\n if (!externalPlugin.frameworks.includes(framework)) {\n continue\n }\n\n if (code.includes(externalPlugin.identifier)) {\n throw new FoundPluginInBeforeCode(externalPlugin, framework)\n }\n }\n\n return handleCompilingFile(code, id)\n }\n\n return null\n },\n\n transformInclude(transformId) {\n if (!userConfig.autoCodeSplitting) {\n return undefined\n }\n\n let id = transformId\n\n if (id.startsWith(JoinedSplitPrefix)) {\n id = id.replace(JoinedSplitPrefix, '')\n }\n\n if (\n fileIsInRoutesDirectory(id, userConfig.routesDirectory) ||\n id.includes(splitPrefix)\n ) {\n return true\n }\n return false\n },\n\n vite: {\n configResolved(config) {\n ROOT = config.root\n\n userConfig = getConfig(options, ROOT)\n },\n },\n\n rspack(compiler) {\n ROOT = process.cwd()\n\n compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {\n self.normalModuleFactory.hooks.beforeResolve.tap(\n PLUGIN_NAME,\n (resolveData: { request: string }) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = getConfig(options, ROOT)\n },\n\n webpack(compiler) {\n ROOT = process.cwd()\n\n compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {\n self.normalModuleFactory.hooks.beforeResolve.tap(\n PLUGIN_NAME,\n (resolveData: { request: string }) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = getConfig(options, ROOT)\n\n if (\n userConfig.autoCodeSplitting &&\n compiler.options.mode === 'production'\n ) {\n compiler.hooks.done.tap(PLUGIN_NAME, () => {\n console.info('✅ ' + PLUGIN_NAME + ': code-splitting done!')\n setTimeout(() => {\n process.exit(0)\n })\n })\n }\n },\n }\n}\n"],"names":["isAbsolute","join","splitPrefix","compileCodeSplitVirtualRoute","compileCodeSplitReferenceRoute","pathToFileURL","fileURLToPath","config","getConfig"],"mappings":"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"}
@@ -25,6 +25,8 @@ declare const TanStackRouterGeneratorRspack: (options?: Partial<{
25
25
  apiBase: string;
26
26
  routeTreeFileHeader: string[];
27
27
  routeTreeFileFooter: string[];
28
+ indexToken: string;
29
+ routeToken: string;
28
30
  enableRouteGeneration?: boolean | undefined;
29
31
  routeFilePrefix?: string | undefined;
30
32
  routeFileIgnorePattern?: string | undefined;
@@ -59,6 +61,8 @@ declare const TanStackRouterCodeSplitterRspack: (options?: Partial<{
59
61
  apiBase: string;
60
62
  routeTreeFileHeader: string[];
61
63
  routeTreeFileFooter: string[];
64
+ indexToken: string;
65
+ routeToken: string;
62
66
  enableRouteGeneration?: boolean | undefined;
63
67
  routeFilePrefix?: string | undefined;
64
68
  routeFileIgnorePattern?: string | undefined;
@@ -93,6 +97,8 @@ declare const TanStackRouterRspack: (options?: Partial<{
93
97
  apiBase: string;
94
98
  routeTreeFileHeader: string[];
95
99
  routeTreeFileFooter: string[];
100
+ indexToken: string;
101
+ routeToken: string;
96
102
  enableRouteGeneration?: boolean | undefined;
97
103
  routeFilePrefix?: string | undefined;
98
104
  routeFileIgnorePattern?: string | undefined;
@@ -21,6 +21,8 @@ declare const TanStackRouterGeneratorVite: (options?: Partial<{
21
21
  apiBase: string;
22
22
  routeTreeFileHeader: string[];
23
23
  routeTreeFileFooter: string[];
24
+ indexToken: string;
25
+ routeToken: string;
24
26
  enableRouteGeneration?: boolean | undefined;
25
27
  routeFilePrefix?: string | undefined;
26
28
  routeFileIgnorePattern?: string | undefined;
@@ -51,6 +53,8 @@ declare const TanStackRouterCodeSplitterVite: (options?: Partial<{
51
53
  apiBase: string;
52
54
  routeTreeFileHeader: string[];
53
55
  routeTreeFileFooter: string[];
56
+ indexToken: string;
57
+ routeToken: string;
54
58
  enableRouteGeneration?: boolean | undefined;
55
59
  routeFilePrefix?: string | undefined;
56
60
  routeFileIgnorePattern?: string | undefined;
@@ -81,6 +85,8 @@ declare const TanStackRouterVite: (options?: Partial<{
81
85
  apiBase: string;
82
86
  routeTreeFileHeader: string[];
83
87
  routeTreeFileFooter: string[];
88
+ indexToken: string;
89
+ routeToken: string;
84
90
  enableRouteGeneration?: boolean | undefined;
85
91
  routeFilePrefix?: string | undefined;
86
92
  routeFileIgnorePattern?: string | undefined;
@@ -21,6 +21,8 @@ declare const TanStackRouterGeneratorWebpack: (options?: Partial<{
21
21
  apiBase: string;
22
22
  routeTreeFileHeader: string[];
23
23
  routeTreeFileFooter: string[];
24
+ indexToken: string;
25
+ routeToken: string;
24
26
  enableRouteGeneration?: boolean | undefined;
25
27
  routeFilePrefix?: string | undefined;
26
28
  routeFileIgnorePattern?: string | undefined;
@@ -51,6 +53,8 @@ declare const TanStackRouterCodeSplitterWebpack: (options?: Partial<{
51
53
  apiBase: string;
52
54
  routeTreeFileHeader: string[];
53
55
  routeTreeFileFooter: string[];
56
+ indexToken: string;
57
+ routeToken: string;
54
58
  enableRouteGeneration?: boolean | undefined;
55
59
  routeFilePrefix?: string | undefined;
56
60
  routeFileIgnorePattern?: string | undefined;
@@ -81,6 +85,8 @@ declare const TanStackRouterWebpack: (options?: Partial<{
81
85
  apiBase: string;
82
86
  routeTreeFileHeader: string[];
83
87
  routeTreeFileFooter: string[];
88
+ indexToken: string;
89
+ routeToken: string;
84
90
  enableRouteGeneration?: boolean | undefined;
85
91
  routeFilePrefix?: string | undefined;
86
92
  routeFileIgnorePattern?: string | undefined;
@@ -15,6 +15,8 @@ export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
15
15
  routeTreeFileHeader: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
16
16
  routeTreeFileFooter: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
17
17
  autoCodeSplitting: z.ZodOptional<z.ZodBoolean>;
18
+ indexToken: z.ZodDefault<z.ZodOptional<z.ZodString>>;
19
+ routeToken: z.ZodDefault<z.ZodOptional<z.ZodString>>;
18
20
  experimental: z.ZodOptional<z.ZodObject<{
19
21
  enableCodeSplitting: z.ZodOptional<z.ZodBoolean>;
20
22
  }, "strip", z.ZodTypeAny, {
@@ -37,6 +39,8 @@ export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
37
39
  apiBase: string;
38
40
  routeTreeFileHeader: string[];
39
41
  routeTreeFileFooter: string[];
42
+ indexToken: string;
43
+ routeToken: string;
40
44
  enableRouteGeneration?: boolean | undefined;
41
45
  routeFilePrefix?: string | undefined;
42
46
  routeFileIgnorePattern?: string | undefined;
@@ -61,6 +65,8 @@ export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
61
65
  routeTreeFileHeader?: string[] | undefined;
62
66
  routeTreeFileFooter?: string[] | undefined;
63
67
  autoCodeSplitting?: boolean | undefined;
68
+ indexToken?: string | undefined;
69
+ routeToken?: string | undefined;
64
70
  experimental?: {
65
71
  enableCodeSplitting?: boolean | undefined;
66
72
  } | undefined;
@@ -78,6 +84,8 @@ export declare const getConfig: (inlineConfig: Partial<Config>, root: string) =>
78
84
  apiBase: string;
79
85
  routeTreeFileHeader: string[];
80
86
  routeTreeFileFooter: string[];
87
+ indexToken: string;
88
+ routeToken: string;
81
89
  enableRouteGeneration?: boolean | undefined;
82
90
  routeFilePrefix?: string | undefined;
83
91
  routeFileIgnorePattern?: string | undefined;
@@ -117,7 +117,7 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
117
117
  vite: {
118
118
  configResolved(config) {
119
119
  ROOT = config.root;
120
- userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT));
120
+ userConfig = getConfig(options, ROOT);
121
121
  }
122
122
  },
123
123
  rspack(compiler) {
@@ -135,7 +135,7 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
135
135
  }
136
136
  );
137
137
  });
138
- userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT));
138
+ userConfig = getConfig(options, ROOT);
139
139
  },
140
140
  webpack(compiler) {
141
141
  ROOT = process.cwd();
@@ -152,7 +152,7 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
152
152
  }
153
153
  );
154
154
  });
155
- userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT));
155
+ userConfig = getConfig(options, ROOT);
156
156
  if (userConfig.autoCodeSplitting && compiler.options.mode === "production") {
157
157
  compiler.hooks.done.tap(PLUGIN_NAME, () => {
158
158
  console.info("✅ " + PLUGIN_NAME + ": code-splitting done!");
@@ -164,20 +164,6 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
164
164
  }
165
165
  };
166
166
  };
167
- function CHECK_USER_FLAGS_TO_BE_CHANGED(config) {
168
- var _a;
169
- if (typeof ((_a = config.experimental) == null ? void 0 : _a.enableCodeSplitting) !== "undefined") {
170
- const message = `
171
- ------
172
- ⚠️ ⚠️ ⚠️
173
- ERROR: The "experimental.enableCodeSplitting" flag has been made stable and is now "autoCodeSplitting". Please update your configuration file to use "autoCodeSplitting" instead of "experimental.enableCodeSplitting".
174
- ------
175
- `;
176
- console.error(message);
177
- throw new Error(message);
178
- }
179
- return config;
180
- }
181
167
  export {
182
168
  unpluginRouterCodeSplitterFactory
183
169
  };
@@ -1 +1 @@
1
- {"version":3,"file":"router-code-splitter-plugin.js","sources":["../../../src/core/router-code-splitter-plugin.ts"],"sourcesContent":["import { isAbsolute, join } from 'node:path'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\n\nimport { getConfig } from './config'\nimport {\n compileCodeSplitReferenceRoute,\n compileCodeSplitVirtualRoute,\n} from './code-splitter/compilers'\nimport { splitPrefix } from './constants'\n\nimport type { Config } from './config'\nimport type { UnpluginContextMeta, UnpluginFactory } from 'unplugin'\n\nfunction capitalizeFirst(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nfunction fileIsInRoutesDirectory(filePath: string, routesDirectory: string) {\n const routesDirectoryPath = isAbsolute(routesDirectory)\n ? routesDirectory\n : join(process.cwd(), routesDirectory)\n\n return filePath.startsWith(routesDirectoryPath)\n}\n\ntype BannedBeforeExternalPlugin = {\n identifier: string\n pkg: string\n usage: string\n frameworks: Array<UnpluginContextMeta['framework']>\n}\n\nconst bannedBeforeExternalPlugins: Array<BannedBeforeExternalPlugin> = [\n {\n identifier: '@react-refresh',\n pkg: '@vitejs/plugin-react',\n usage: 'viteReact()',\n frameworks: ['vite'],\n },\n]\n\nclass FoundPluginInBeforeCode extends Error {\n constructor(externalPlugin: BannedBeforeExternalPlugin, framework: string) {\n super(`We detected that the '${externalPlugin.pkg}' was passed before '@tanstack/router-plugin'. Please make sure that '@tanstack/router-plugin' is passed before '${externalPlugin.pkg}' and try again: \ne.g.\nplugins: [\n TanStackRouter${capitalizeFirst(framework)}(), // Place this before ${externalPlugin.usage}\n ${externalPlugin.usage},\n]\n`)\n }\n}\n\nconst PLUGIN_NAME = 'unplugin:router-code-splitter'\nconst JoinedSplitPrefix = splitPrefix + ':'\n\nexport const unpluginRouterCodeSplitterFactory: UnpluginFactory<\n Partial<Config> | undefined\n> = (options = {}, { framework }) => {\n const debug = Boolean(process.env.TSR_VITE_DEBUG)\n\n let ROOT: string = process.cwd()\n let userConfig = options as Config\n\n const handleSplittingFile = (code: string, id: string) => {\n if (debug) console.info('Splitting route: ', id)\n\n const compiledVirtualRoute = compileCodeSplitVirtualRoute({\n code,\n root: ROOT,\n filename: id,\n })\n\n if (debug) console.info('')\n if (debug) console.info('Split Output')\n if (debug) console.info('')\n if (debug) console.info(compiledVirtualRoute.code)\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n\n return compiledVirtualRoute\n }\n\n const handleCompilingFile = (code: string, id: string) => {\n if (debug) console.info('Handling createRoute: ', id)\n\n const compiledReferenceRoute = compileCodeSplitReferenceRoute({\n code,\n root: ROOT,\n filename: id,\n })\n\n if (debug) console.info('')\n if (debug) console.info('Compiled Output')\n if (debug) console.info('')\n if (debug) console.info(compiledReferenceRoute.code)\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n\n return compiledReferenceRoute\n }\n\n return {\n name: 'router-code-splitter-plugin',\n enforce: 'pre',\n\n resolveId(source) {\n if (!userConfig.autoCodeSplitting) {\n return null\n }\n\n if (source.startsWith(splitPrefix + ':')) {\n return source.replace(splitPrefix + ':', '')\n }\n return null\n },\n\n transform(code, id) {\n if (!userConfig.autoCodeSplitting) {\n return null\n }\n\n const url = pathToFileURL(id)\n url.searchParams.delete('v')\n id = fileURLToPath(url).replace(/\\\\/g, '/')\n\n if (id.includes(splitPrefix)) {\n return handleSplittingFile(code, id)\n } else if (\n fileIsInRoutesDirectory(id, userConfig.routesDirectory) &&\n (code.includes('createRoute(') || code.includes('createFileRoute('))\n ) {\n for (const externalPlugin of bannedBeforeExternalPlugins) {\n if (!externalPlugin.frameworks.includes(framework)) {\n continue\n }\n\n if (code.includes(externalPlugin.identifier)) {\n throw new FoundPluginInBeforeCode(externalPlugin, framework)\n }\n }\n\n return handleCompilingFile(code, id)\n }\n\n return null\n },\n\n transformInclude(transformId) {\n if (!userConfig.autoCodeSplitting) {\n return undefined\n }\n\n let id = transformId\n\n if (id.startsWith(JoinedSplitPrefix)) {\n id = id.replace(JoinedSplitPrefix, '')\n }\n\n if (\n fileIsInRoutesDirectory(id, userConfig.routesDirectory) ||\n id.includes(splitPrefix)\n ) {\n return true\n }\n return false\n },\n\n vite: {\n configResolved(config) {\n ROOT = config.root\n\n userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT))\n },\n },\n\n rspack(compiler) {\n ROOT = process.cwd()\n\n compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {\n self.normalModuleFactory.hooks.beforeResolve.tap(\n PLUGIN_NAME,\n (resolveData: { request: string }) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT))\n },\n\n webpack(compiler) {\n ROOT = process.cwd()\n\n compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {\n self.normalModuleFactory.hooks.beforeResolve.tap(\n PLUGIN_NAME,\n (resolveData: { request: string }) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT))\n\n if (\n userConfig.autoCodeSplitting &&\n compiler.options.mode === 'production'\n ) {\n compiler.hooks.done.tap(PLUGIN_NAME, () => {\n console.info('✅ ' + PLUGIN_NAME + ': code-splitting done!')\n setTimeout(() => {\n process.exit(0)\n })\n })\n }\n },\n }\n}\n\nfunction CHECK_USER_FLAGS_TO_BE_CHANGED(config: Config): Config {\n if (typeof config.experimental?.enableCodeSplitting !== 'undefined') {\n const message = `\n------\n⚠️ ⚠️ ⚠️\nERROR: The \"experimental.enableCodeSplitting\" flag has been made stable and is now \"autoCodeSplitting\". Please update your configuration file to use \"autoCodeSplitting\" instead of \"experimental.enableCodeSplitting\".\n------\n`\n console.error(message)\n throw new Error(message)\n }\n\n return config\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router-code-splitter-plugin.js","sources":["../../../src/core/router-code-splitter-plugin.ts"],"sourcesContent":["import { isAbsolute, join } from 'node:path'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\n\nimport { getConfig } from './config'\nimport {\n compileCodeSplitReferenceRoute,\n compileCodeSplitVirtualRoute,\n} from './code-splitter/compilers'\nimport { splitPrefix } from './constants'\n\nimport type { Config } from './config'\nimport type { UnpluginContextMeta, UnpluginFactory } from 'unplugin'\n\nfunction capitalizeFirst(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nfunction fileIsInRoutesDirectory(filePath: string, routesDirectory: string) {\n const routesDirectoryPath = isAbsolute(routesDirectory)\n ? routesDirectory\n : join(process.cwd(), routesDirectory)\n\n return filePath.startsWith(routesDirectoryPath)\n}\n\ntype BannedBeforeExternalPlugin = {\n identifier: string\n pkg: string\n usage: string\n frameworks: Array<UnpluginContextMeta['framework']>\n}\n\nconst bannedBeforeExternalPlugins: Array<BannedBeforeExternalPlugin> = [\n {\n identifier: '@react-refresh',\n pkg: '@vitejs/plugin-react',\n usage: 'viteReact()',\n frameworks: ['vite'],\n },\n]\n\nclass FoundPluginInBeforeCode extends Error {\n constructor(externalPlugin: BannedBeforeExternalPlugin, framework: string) {\n super(`We detected that the '${externalPlugin.pkg}' was passed before '@tanstack/router-plugin'. Please make sure that '@tanstack/router-plugin' is passed before '${externalPlugin.pkg}' and try again: \ne.g.\nplugins: [\n TanStackRouter${capitalizeFirst(framework)}(), // Place this before ${externalPlugin.usage}\n ${externalPlugin.usage},\n]\n`)\n }\n}\n\nconst PLUGIN_NAME = 'unplugin:router-code-splitter'\nconst JoinedSplitPrefix = splitPrefix + ':'\n\nexport const unpluginRouterCodeSplitterFactory: UnpluginFactory<\n Partial<Config> | undefined\n> = (options = {}, { framework }) => {\n const debug = Boolean(process.env.TSR_VITE_DEBUG)\n\n let ROOT: string = process.cwd()\n let userConfig = options as Config\n\n const handleSplittingFile = (code: string, id: string) => {\n if (debug) console.info('Splitting route: ', id)\n\n const compiledVirtualRoute = compileCodeSplitVirtualRoute({\n code,\n root: ROOT,\n filename: id,\n })\n\n if (debug) console.info('')\n if (debug) console.info('Split Output')\n if (debug) console.info('')\n if (debug) console.info(compiledVirtualRoute.code)\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n\n return compiledVirtualRoute\n }\n\n const handleCompilingFile = (code: string, id: string) => {\n if (debug) console.info('Handling createRoute: ', id)\n\n const compiledReferenceRoute = compileCodeSplitReferenceRoute({\n code,\n root: ROOT,\n filename: id,\n })\n\n if (debug) console.info('')\n if (debug) console.info('Compiled Output')\n if (debug) console.info('')\n if (debug) console.info(compiledReferenceRoute.code)\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n\n return compiledReferenceRoute\n }\n\n return {\n name: 'router-code-splitter-plugin',\n enforce: 'pre',\n\n resolveId(source) {\n if (!userConfig.autoCodeSplitting) {\n return null\n }\n\n if (source.startsWith(splitPrefix + ':')) {\n return source.replace(splitPrefix + ':', '')\n }\n return null\n },\n\n transform(code, id) {\n if (!userConfig.autoCodeSplitting) {\n return null\n }\n\n const url = pathToFileURL(id)\n url.searchParams.delete('v')\n id = fileURLToPath(url).replace(/\\\\/g, '/')\n\n if (id.includes(splitPrefix)) {\n return handleSplittingFile(code, id)\n } else if (\n fileIsInRoutesDirectory(id, userConfig.routesDirectory) &&\n (code.includes('createRoute(') || code.includes('createFileRoute('))\n ) {\n for (const externalPlugin of bannedBeforeExternalPlugins) {\n if (!externalPlugin.frameworks.includes(framework)) {\n continue\n }\n\n if (code.includes(externalPlugin.identifier)) {\n throw new FoundPluginInBeforeCode(externalPlugin, framework)\n }\n }\n\n return handleCompilingFile(code, id)\n }\n\n return null\n },\n\n transformInclude(transformId) {\n if (!userConfig.autoCodeSplitting) {\n return undefined\n }\n\n let id = transformId\n\n if (id.startsWith(JoinedSplitPrefix)) {\n id = id.replace(JoinedSplitPrefix, '')\n }\n\n if (\n fileIsInRoutesDirectory(id, userConfig.routesDirectory) ||\n id.includes(splitPrefix)\n ) {\n return true\n }\n return false\n },\n\n vite: {\n configResolved(config) {\n ROOT = config.root\n\n userConfig = getConfig(options, ROOT)\n },\n },\n\n rspack(compiler) {\n ROOT = process.cwd()\n\n compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {\n self.normalModuleFactory.hooks.beforeResolve.tap(\n PLUGIN_NAME,\n (resolveData: { request: string }) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = getConfig(options, ROOT)\n },\n\n webpack(compiler) {\n ROOT = process.cwd()\n\n compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {\n self.normalModuleFactory.hooks.beforeResolve.tap(\n PLUGIN_NAME,\n (resolveData: { request: string }) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = getConfig(options, ROOT)\n\n if (\n userConfig.autoCodeSplitting &&\n compiler.options.mode === 'production'\n ) {\n compiler.hooks.done.tap(PLUGIN_NAME, () => {\n console.info('✅ ' + PLUGIN_NAME + ': code-splitting done!')\n setTimeout(() => {\n process.exit(0)\n })\n })\n }\n },\n }\n}\n"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ declare const TanStackRouterGeneratorRspack: (options?: Partial<{
25
25
  apiBase: string;
26
26
  routeTreeFileHeader: string[];
27
27
  routeTreeFileFooter: string[];
28
+ indexToken: string;
29
+ routeToken: string;
28
30
  enableRouteGeneration?: boolean | undefined;
29
31
  routeFilePrefix?: string | undefined;
30
32
  routeFileIgnorePattern?: string | undefined;
@@ -59,6 +61,8 @@ declare const TanStackRouterCodeSplitterRspack: (options?: Partial<{
59
61
  apiBase: string;
60
62
  routeTreeFileHeader: string[];
61
63
  routeTreeFileFooter: string[];
64
+ indexToken: string;
65
+ routeToken: string;
62
66
  enableRouteGeneration?: boolean | undefined;
63
67
  routeFilePrefix?: string | undefined;
64
68
  routeFileIgnorePattern?: string | undefined;
@@ -93,6 +97,8 @@ declare const TanStackRouterRspack: (options?: Partial<{
93
97
  apiBase: string;
94
98
  routeTreeFileHeader: string[];
95
99
  routeTreeFileFooter: string[];
100
+ indexToken: string;
101
+ routeToken: string;
96
102
  enableRouteGeneration?: boolean | undefined;
97
103
  routeFilePrefix?: string | undefined;
98
104
  routeFileIgnorePattern?: string | undefined;
@@ -21,6 +21,8 @@ declare const TanStackRouterGeneratorVite: (options?: Partial<{
21
21
  apiBase: string;
22
22
  routeTreeFileHeader: string[];
23
23
  routeTreeFileFooter: string[];
24
+ indexToken: string;
25
+ routeToken: string;
24
26
  enableRouteGeneration?: boolean | undefined;
25
27
  routeFilePrefix?: string | undefined;
26
28
  routeFileIgnorePattern?: string | undefined;
@@ -51,6 +53,8 @@ declare const TanStackRouterCodeSplitterVite: (options?: Partial<{
51
53
  apiBase: string;
52
54
  routeTreeFileHeader: string[];
53
55
  routeTreeFileFooter: string[];
56
+ indexToken: string;
57
+ routeToken: string;
54
58
  enableRouteGeneration?: boolean | undefined;
55
59
  routeFilePrefix?: string | undefined;
56
60
  routeFileIgnorePattern?: string | undefined;
@@ -81,6 +85,8 @@ declare const TanStackRouterVite: (options?: Partial<{
81
85
  apiBase: string;
82
86
  routeTreeFileHeader: string[];
83
87
  routeTreeFileFooter: string[];
88
+ indexToken: string;
89
+ routeToken: string;
84
90
  enableRouteGeneration?: boolean | undefined;
85
91
  routeFilePrefix?: string | undefined;
86
92
  routeFileIgnorePattern?: string | undefined;
@@ -21,6 +21,8 @@ declare const TanStackRouterGeneratorWebpack: (options?: Partial<{
21
21
  apiBase: string;
22
22
  routeTreeFileHeader: string[];
23
23
  routeTreeFileFooter: string[];
24
+ indexToken: string;
25
+ routeToken: string;
24
26
  enableRouteGeneration?: boolean | undefined;
25
27
  routeFilePrefix?: string | undefined;
26
28
  routeFileIgnorePattern?: string | undefined;
@@ -51,6 +53,8 @@ declare const TanStackRouterCodeSplitterWebpack: (options?: Partial<{
51
53
  apiBase: string;
52
54
  routeTreeFileHeader: string[];
53
55
  routeTreeFileFooter: string[];
56
+ indexToken: string;
57
+ routeToken: string;
54
58
  enableRouteGeneration?: boolean | undefined;
55
59
  routeFilePrefix?: string | undefined;
56
60
  routeFileIgnorePattern?: string | undefined;
@@ -81,6 +85,8 @@ declare const TanStackRouterWebpack: (options?: Partial<{
81
85
  apiBase: string;
82
86
  routeTreeFileHeader: string[];
83
87
  routeTreeFileFooter: string[];
88
+ indexToken: string;
89
+ routeToken: string;
84
90
  enableRouteGeneration?: boolean | undefined;
85
91
  routeFilePrefix?: string | undefined;
86
92
  routeFileIgnorePattern?: string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/router-plugin",
3
- "version": "1.51.6",
3
+ "version": "1.52.0",
4
4
  "description": "Modern and scalable routing for React applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -92,7 +92,7 @@
92
92
  "chokidar": "^3.6.0",
93
93
  "unplugin": "^1.12.2",
94
94
  "zod": "^3.23.8",
95
- "@tanstack/router-generator": "^1.51.6"
95
+ "@tanstack/router-generator": "^1.52.0"
96
96
  },
97
97
  "peerDependencies": {
98
98
  "@rsbuild/core": ">=1.0.0",
@@ -172,7 +172,7 @@ export const unpluginRouterCodeSplitterFactory: UnpluginFactory<
172
172
  configResolved(config) {
173
173
  ROOT = config.root
174
174
 
175
- userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT))
175
+ userConfig = getConfig(options, ROOT)
176
176
  },
177
177
  },
178
178
 
@@ -193,7 +193,7 @@ export const unpluginRouterCodeSplitterFactory: UnpluginFactory<
193
193
  )
194
194
  })
195
195
 
196
- userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT))
196
+ userConfig = getConfig(options, ROOT)
197
197
  },
198
198
 
199
199
  webpack(compiler) {
@@ -213,7 +213,7 @@ export const unpluginRouterCodeSplitterFactory: UnpluginFactory<
213
213
  )
214
214
  })
215
215
 
216
- userConfig = CHECK_USER_FLAGS_TO_BE_CHANGED(getConfig(options, ROOT))
216
+ userConfig = getConfig(options, ROOT)
217
217
 
218
218
  if (
219
219
  userConfig.autoCodeSplitting &&
@@ -229,18 +229,3 @@ export const unpluginRouterCodeSplitterFactory: UnpluginFactory<
229
229
  },
230
230
  }
231
231
  }
232
-
233
- function CHECK_USER_FLAGS_TO_BE_CHANGED(config: Config): Config {
234
- if (typeof config.experimental?.enableCodeSplitting !== 'undefined') {
235
- const message = `
236
- ------
237
- ⚠️ ⚠️ ⚠️
238
- ERROR: The "experimental.enableCodeSplitting" flag has been made stable and is now "autoCodeSplitting". Please update your configuration file to use "autoCodeSplitting" instead of "experimental.enableCodeSplitting".
239
- ------
240
- `
241
- console.error(message)
242
- throw new Error(message)
243
- }
244
-
245
- return config
246
- }