@tanstack/router-plugin 1.120.4-alpha.4 → 1.120.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core/code-splitter/compilers.cjs +21 -39
- package/dist/cjs/core/code-splitter/compilers.cjs.map +1 -1
- package/dist/cjs/core/code-splitter/compilers.d.cts +0 -3
- package/dist/cjs/core/code-splitter/framework-options.cjs +8 -4
- package/dist/cjs/core/code-splitter/framework-options.cjs.map +1 -1
- package/dist/cjs/core/code-splitter/framework-options.d.cts +2 -0
- package/dist/cjs/core/config.d.cts +40 -31
- package/dist/cjs/core/router-code-splitter-plugin.cjs +20 -11
- package/dist/cjs/core/router-code-splitter-plugin.cjs.map +1 -1
- package/dist/cjs/core/router-composed-plugin.cjs +5 -19
- package/dist/cjs/core/router-composed-plugin.cjs.map +1 -1
- package/dist/cjs/core/router-generator-plugin.cjs +2 -8
- package/dist/cjs/core/router-generator-plugin.cjs.map +1 -1
- package/dist/cjs/esbuild.d.cts +27 -21
- package/dist/cjs/rspack.d.cts +27 -21
- package/dist/cjs/vite.cjs +0 -2
- package/dist/cjs/vite.cjs.map +1 -1
- package/dist/cjs/vite.d.cts +26 -52
- package/dist/cjs/webpack.d.cts +27 -21
- package/dist/esm/core/code-splitter/compilers.d.ts +0 -3
- package/dist/esm/core/code-splitter/compilers.js +21 -39
- package/dist/esm/core/code-splitter/compilers.js.map +1 -1
- package/dist/esm/core/code-splitter/framework-options.d.ts +2 -0
- package/dist/esm/core/code-splitter/framework-options.js +8 -4
- package/dist/esm/core/code-splitter/framework-options.js.map +1 -1
- package/dist/esm/core/config.d.ts +40 -31
- package/dist/esm/core/router-code-splitter-plugin.js +14 -5
- package/dist/esm/core/router-code-splitter-plugin.js.map +1 -1
- package/dist/esm/core/router-composed-plugin.js +5 -19
- package/dist/esm/core/router-composed-plugin.js.map +1 -1
- package/dist/esm/core/router-generator-plugin.js +2 -8
- package/dist/esm/core/router-generator-plugin.js.map +1 -1
- package/dist/esm/esbuild.d.ts +27 -21
- package/dist/esm/rspack.d.ts +27 -21
- package/dist/esm/vite.d.ts +26 -52
- package/dist/esm/vite.js +1 -3
- package/dist/esm/vite.js.map +1 -1
- package/dist/esm/webpack.d.ts +27 -21
- package/package.json +6 -6
- package/src/core/code-splitter/compilers.ts +27 -54
- package/src/core/code-splitter/framework-options.ts +6 -0
- package/src/core/router-code-splitter-plugin.ts +23 -3
- package/src/core/router-composed-plugin.ts +10 -20
- package/src/core/router-generator-plugin.ts +1 -12
- package/src/vite.ts +0 -3
- package/dist/cjs/core/route-autoimport-plugin.cjs +0 -98
- package/dist/cjs/core/route-autoimport-plugin.cjs.map +0 -1
- package/dist/cjs/core/route-autoimport-plugin.d.cts +0 -6
- package/dist/cjs/core/route-hmr-statement.cjs +0 -33
- package/dist/cjs/core/route-hmr-statement.cjs.map +0 -1
- package/dist/cjs/core/route-hmr-statement.d.cts +0 -1
- package/dist/cjs/core/router-hmr-plugin.cjs +0 -51
- package/dist/cjs/core/router-hmr-plugin.cjs.map +0 -1
- package/dist/cjs/core/router-hmr-plugin.d.cts +0 -8
- package/dist/cjs/core/utils.cjs +0 -12
- package/dist/cjs/core/utils.cjs.map +0 -1
- package/dist/cjs/core/utils.d.cts +0 -2
- package/dist/esm/core/route-autoimport-plugin.d.ts +0 -6
- package/dist/esm/core/route-autoimport-plugin.js +0 -81
- package/dist/esm/core/route-autoimport-plugin.js.map +0 -1
- package/dist/esm/core/route-hmr-statement.d.ts +0 -1
- package/dist/esm/core/route-hmr-statement.js +0 -16
- package/dist/esm/core/route-hmr-statement.js.map +0 -1
- package/dist/esm/core/router-hmr-plugin.d.ts +0 -8
- package/dist/esm/core/router-hmr-plugin.js +0 -51
- package/dist/esm/core/router-hmr-plugin.js.map +0 -1
- package/dist/esm/core/utils.d.ts +0 -2
- package/dist/esm/core/utils.js +0 -12
- package/dist/esm/core/utils.js.map +0 -1
- package/src/core/route-autoimport-plugin.ts +0 -102
- package/src/core/route-hmr-statement.ts +0 -13
- package/src/core/router-hmr-plugin.ts +0 -65
- package/src/core/utils.ts +0 -18
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const node_path = require("node:path");
|
|
3
4
|
const node_url = require("node:url");
|
|
4
5
|
const routerUtils = require("@tanstack/router-utils");
|
|
5
6
|
const config = require("./config.cjs");
|
|
6
7
|
const compilers = require("./code-splitter/compilers.cjs");
|
|
7
8
|
const constants = require("./constants.cjs");
|
|
8
9
|
const pathIds = require("./code-splitter/path-ids.cjs");
|
|
9
|
-
const
|
|
10
|
+
const debug = process.env.TSR_VITE_DEBUG && ["true", "router-plugin"].includes(process.env.TSR_VITE_DEBUG);
|
|
10
11
|
function capitalizeFirst(str) {
|
|
11
12
|
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
12
13
|
}
|
|
14
|
+
function fileIsInRoutesDirectory(filePath, routesDirectory) {
|
|
15
|
+
const routesDirectoryPath = node_path.isAbsolute(routesDirectory) ? routesDirectory : node_path.join(process.cwd(), routesDirectory);
|
|
16
|
+
const path = node_path.normalize(filePath);
|
|
17
|
+
return path.startsWith(routesDirectoryPath);
|
|
18
|
+
}
|
|
13
19
|
const bannedBeforeExternalPlugins = [
|
|
14
20
|
{
|
|
15
21
|
identifier: "@react-refresh",
|
|
@@ -43,9 +49,11 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
|
43
49
|
return (_a = userConfig.codeSplittingOptions) == null ? void 0 : _a.splitBehavior;
|
|
44
50
|
};
|
|
45
51
|
const handleCompilingReferenceFile = (code, id) => {
|
|
46
|
-
if (
|
|
52
|
+
if (debug) console.info("Compiling Route: ", id);
|
|
47
53
|
const fromCode = compilers.detectCodeSplitGroupingsFromRoute({
|
|
48
|
-
code
|
|
54
|
+
code,
|
|
55
|
+
root: ROOT,
|
|
56
|
+
filename: id
|
|
49
57
|
});
|
|
50
58
|
if (fromCode.groupings) {
|
|
51
59
|
const res = config.splitGroupingsSchema.safeParse(fromCode.groupings);
|
|
@@ -74,20 +82,20 @@ ${message}`
|
|
|
74
82
|
const splitGroupings = fromCode.groupings || pluginSplitBehavior || getGlobalCodeSplitGroupings();
|
|
75
83
|
const compiledReferenceRoute = compilers.compileCodeSplitReferenceRoute({
|
|
76
84
|
code,
|
|
85
|
+
root: ROOT,
|
|
86
|
+
filename: id,
|
|
77
87
|
runtimeEnv: isProduction ? "prod" : "dev",
|
|
78
88
|
codeSplitGroupings: splitGroupings,
|
|
79
|
-
targetFramework: userConfig.target
|
|
80
|
-
filename: id,
|
|
81
|
-
id
|
|
89
|
+
targetFramework: userConfig.target
|
|
82
90
|
});
|
|
83
|
-
if (
|
|
91
|
+
if (debug) {
|
|
84
92
|
routerUtils.logDiff(code, compiledReferenceRoute.code);
|
|
85
93
|
console.log("Output:\n", compiledReferenceRoute.code + "\n\n");
|
|
86
94
|
}
|
|
87
95
|
return compiledReferenceRoute;
|
|
88
96
|
};
|
|
89
97
|
const handleCompilingVirtualFile = (code, id) => {
|
|
90
|
-
if (
|
|
98
|
+
if (debug) console.info("Splitting Route: ", id);
|
|
91
99
|
const [_, ...pathnameParts] = id.split("?");
|
|
92
100
|
const searchParams = new URLSearchParams(pathnameParts.join("?"));
|
|
93
101
|
const splitValue = searchParams.get(constants.tsrSplit);
|
|
@@ -102,10 +110,11 @@ ${message}`
|
|
|
102
110
|
);
|
|
103
111
|
const result = compilers.compileCodeSplitVirtualRoute({
|
|
104
112
|
code,
|
|
113
|
+
root: ROOT,
|
|
105
114
|
filename: id,
|
|
106
115
|
splitTargets: grouping
|
|
107
116
|
});
|
|
108
|
-
if (
|
|
117
|
+
if (debug) {
|
|
109
118
|
routerUtils.logDiff(code, result.code);
|
|
110
119
|
console.log("Output:\n", result.code + "\n\n");
|
|
111
120
|
}
|
|
@@ -123,7 +132,7 @@ ${message}`
|
|
|
123
132
|
id = node_url.fileURLToPath(url).replace(/\\/g, "/");
|
|
124
133
|
if (id.includes(constants.tsrSplit)) {
|
|
125
134
|
return handleCompilingVirtualFile(code, id);
|
|
126
|
-
} else if (
|
|
135
|
+
} else if (fileIsInRoutesDirectory(id, userConfig.routesDirectory) && (code.includes("createRoute(") || code.includes("createFileRoute("))) {
|
|
127
136
|
for (const externalPlugin of bannedBeforeExternalPlugins) {
|
|
128
137
|
if (!externalPlugin.frameworks.includes(framework)) {
|
|
129
138
|
continue;
|
|
@@ -140,7 +149,7 @@ ${message}`
|
|
|
140
149
|
if (!userConfig.autoCodeSplitting) {
|
|
141
150
|
return void 0;
|
|
142
151
|
}
|
|
143
|
-
if (
|
|
152
|
+
if (fileIsInRoutesDirectory(id, userConfig.routesDirectory) || id.includes(constants.tsrSplit)) {
|
|
144
153
|
return true;
|
|
145
154
|
}
|
|
146
155
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-code-splitter-plugin.cjs","sources":["../../../src/core/router-code-splitter-plugin.ts"],"sourcesContent":["/**\n * It is important to familiarize yourself with how the code-splitting works in this plugin.\n * https://github.com/TanStack/router/pull/3355\n */\n\nimport { fileURLToPath, pathToFileURL } from 'node:url'\nimport { logDiff } from '@tanstack/router-utils'\nimport { getConfig, splitGroupingsSchema } from './config'\nimport {\n compileCodeSplitReferenceRoute,\n compileCodeSplitVirtualRoute,\n detectCodeSplitGroupingsFromRoute,\n} from './code-splitter/compilers'\nimport {\n defaultCodeSplitGroupings,\n splitRouteIdentNodes,\n tsrSplit,\n} from './constants'\nimport { decodeIdentifier } from './code-splitter/path-ids'\nimport { debug, fileIsInRoutesDirectory } from './utils'\nimport type { CodeSplitGroupings, SplitRouteIdentNodes } from './constants'\n\nimport type { Config } from './config'\nimport type {\n UnpluginContextMeta,\n UnpluginFactory,\n TransformResult as UnpluginTransformResult,\n} from 'unplugin'\n\nfunction capitalizeFirst(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\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'\n\nexport const unpluginRouterCodeSplitterFactory: UnpluginFactory<\n Partial<Config> | undefined\n> = (options = {}, { framework }) => {\n let ROOT: string = process.cwd()\n let userConfig = options as Config\n\n const isProduction = process.env.NODE_ENV === 'production'\n\n const getGlobalCodeSplitGroupings = () => {\n return (\n userConfig.codeSplittingOptions?.defaultBehavior ||\n defaultCodeSplitGroupings\n )\n }\n const getShouldSplitFn = () => {\n return userConfig.codeSplittingOptions?.splitBehavior\n }\n\n const handleCompilingReferenceFile = (\n code: string,\n id: string,\n ): UnpluginTransformResult => {\n if (debug) console.info('Compiling Route: ', id)\n\n const fromCode = detectCodeSplitGroupingsFromRoute({\n code,\n })\n\n if (fromCode.groupings) {\n const res = splitGroupingsSchema.safeParse(fromCode.groupings)\n if (!res.success) {\n const message = res.error.errors.map((e) => e.message).join('. ')\n throw new Error(\n `The groupings for the route \"${id}\" are invalid.\\n${message}`,\n )\n }\n }\n\n const userShouldSplitFn = getShouldSplitFn()\n\n const pluginSplitBehavior = userShouldSplitFn?.({\n routeId: fromCode.routeId,\n }) as CodeSplitGroupings | undefined\n\n if (pluginSplitBehavior) {\n const res = splitGroupingsSchema.safeParse(pluginSplitBehavior)\n if (!res.success) {\n const message = res.error.errors.map((e) => e.message).join('. ')\n throw new Error(\n `The groupings returned when using \\`splitBehavior\\` for the route \"${id}\" are invalid.\\n${message}`,\n )\n }\n }\n\n const splitGroupings: CodeSplitGroupings =\n fromCode.groupings || pluginSplitBehavior || getGlobalCodeSplitGroupings()\n\n const compiledReferenceRoute = compileCodeSplitReferenceRoute({\n code,\n runtimeEnv: isProduction ? 'prod' : 'dev',\n codeSplitGroupings: splitGroupings,\n targetFramework: userConfig.target,\n filename: id,\n id,\n })\n\n if (debug) {\n logDiff(code, compiledReferenceRoute.code)\n console.log('Output:\\n', compiledReferenceRoute.code + '\\n\\n')\n }\n\n return compiledReferenceRoute\n }\n\n const handleCompilingVirtualFile = (\n code: string,\n id: string,\n ): UnpluginTransformResult => {\n if (debug) console.info('Splitting Route: ', id)\n\n const [_, ...pathnameParts] = id.split('?')\n\n const searchParams = new URLSearchParams(pathnameParts.join('?'))\n const splitValue = searchParams.get(tsrSplit)\n\n if (!splitValue) {\n throw new Error(\n `The split value for the virtual route \"${id}\" was not found.`,\n )\n }\n\n const rawGrouping = decodeIdentifier(splitValue)\n const grouping = [...new Set(rawGrouping)].filter((p) =>\n splitRouteIdentNodes.includes(p as any),\n ) as Array<SplitRouteIdentNodes>\n\n const result = compileCodeSplitVirtualRoute({\n code,\n filename: id,\n splitTargets: grouping,\n })\n\n if (debug) {\n logDiff(code, result.code)\n console.log('Output:\\n', result.code + '\\n\\n')\n }\n\n return result\n }\n\n return {\n name: 'router-code-splitter-plugin',\n enforce: 'pre',\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(tsrSplit)) {\n return handleCompilingVirtualFile(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 handleCompilingReferenceFile(code, id)\n }\n\n return null\n },\n\n transformInclude(id) {\n if (!userConfig.autoCodeSplitting) {\n return undefined\n }\n\n if (\n fileIsInRoutesDirectory(id, userConfig.routesDirectory) ||\n id.includes(tsrSplit)\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 userConfig = getConfig(options, ROOT)\n },\n\n webpack(compiler) {\n ROOT = process.cwd()\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":["defaultCodeSplitGroupings","debug","detectCodeSplitGroupingsFromRoute","splitGroupingsSchema","compileCodeSplitReferenceRoute","logDiff","tsrSplit","decodeIdentifier","splitRouteIdentNodes","compileCodeSplitVirtualRoute","pathToFileURL","fileURLToPath","fileIsInRoutesDirectory","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":["/**\n * It is important to familiarize yourself with how the code-splitting works in this plugin.\n * https://github.com/TanStack/router/pull/3355\n */\n\nimport { isAbsolute, join, normalize } from 'node:path'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\nimport { logDiff } from '@tanstack/router-utils'\nimport { getConfig, splitGroupingsSchema } from './config'\nimport {\n compileCodeSplitReferenceRoute,\n compileCodeSplitVirtualRoute,\n detectCodeSplitGroupingsFromRoute,\n} from './code-splitter/compilers'\nimport {\n defaultCodeSplitGroupings,\n splitRouteIdentNodes,\n tsrSplit,\n} from './constants'\nimport { decodeIdentifier } from './code-splitter/path-ids'\nimport type { CodeSplitGroupings, SplitRouteIdentNodes } from './constants'\n\nimport type { Config } from './config'\nimport type {\n UnpluginContextMeta,\n UnpluginFactory,\n TransformResult as UnpluginTransformResult,\n} from 'unplugin'\n\nconst debug =\n process.env.TSR_VITE_DEBUG &&\n ['true', 'router-plugin'].includes(process.env.TSR_VITE_DEBUG)\n\nfunction capitalizeFirst(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nfunction fileIsInRoutesDirectory(\n filePath: string,\n routesDirectory: string,\n): boolean {\n const routesDirectoryPath = isAbsolute(routesDirectory)\n ? routesDirectory\n : join(process.cwd(), routesDirectory)\n\n const path = normalize(filePath)\n\n return path.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'\n\nexport const unpluginRouterCodeSplitterFactory: UnpluginFactory<\n Partial<Config> | undefined\n> = (options = {}, { framework }) => {\n let ROOT: string = process.cwd()\n let userConfig = options as Config\n\n const isProduction = process.env.NODE_ENV === 'production'\n\n const getGlobalCodeSplitGroupings = () => {\n return (\n userConfig.codeSplittingOptions?.defaultBehavior ||\n defaultCodeSplitGroupings\n )\n }\n const getShouldSplitFn = () => {\n return userConfig.codeSplittingOptions?.splitBehavior\n }\n\n const handleCompilingReferenceFile = (\n code: string,\n id: string,\n ): UnpluginTransformResult => {\n if (debug) console.info('Compiling Route: ', id)\n\n const fromCode = detectCodeSplitGroupingsFromRoute({\n code,\n root: ROOT,\n filename: id,\n })\n\n if (fromCode.groupings) {\n const res = splitGroupingsSchema.safeParse(fromCode.groupings)\n if (!res.success) {\n const message = res.error.errors.map((e) => e.message).join('. ')\n throw new Error(\n `The groupings for the route \"${id}\" are invalid.\\n${message}`,\n )\n }\n }\n\n const userShouldSplitFn = getShouldSplitFn()\n\n const pluginSplitBehavior = userShouldSplitFn?.({\n routeId: fromCode.routeId,\n }) as CodeSplitGroupings | undefined\n\n if (pluginSplitBehavior) {\n const res = splitGroupingsSchema.safeParse(pluginSplitBehavior)\n if (!res.success) {\n const message = res.error.errors.map((e) => e.message).join('. ')\n throw new Error(\n `The groupings returned when using \\`splitBehavior\\` for the route \"${id}\" are invalid.\\n${message}`,\n )\n }\n }\n\n const splitGroupings: CodeSplitGroupings =\n fromCode.groupings || pluginSplitBehavior || getGlobalCodeSplitGroupings()\n\n const compiledReferenceRoute = compileCodeSplitReferenceRoute({\n code,\n root: ROOT,\n filename: id,\n runtimeEnv: isProduction ? 'prod' : 'dev',\n codeSplitGroupings: splitGroupings,\n targetFramework: userConfig.target,\n })\n\n if (debug) {\n logDiff(code, compiledReferenceRoute.code)\n console.log('Output:\\n', compiledReferenceRoute.code + '\\n\\n')\n }\n\n return compiledReferenceRoute\n }\n\n const handleCompilingVirtualFile = (\n code: string,\n id: string,\n ): UnpluginTransformResult => {\n if (debug) console.info('Splitting Route: ', id)\n\n const [_, ...pathnameParts] = id.split('?')\n\n const searchParams = new URLSearchParams(pathnameParts.join('?'))\n const splitValue = searchParams.get(tsrSplit)\n\n if (!splitValue) {\n throw new Error(\n `The split value for the virtual route \"${id}\" was not found.`,\n )\n }\n\n const rawGrouping = decodeIdentifier(splitValue)\n const grouping = [...new Set(rawGrouping)].filter((p) =>\n splitRouteIdentNodes.includes(p as any),\n ) as Array<SplitRouteIdentNodes>\n\n const result = compileCodeSplitVirtualRoute({\n code,\n root: ROOT,\n filename: id,\n splitTargets: grouping,\n })\n\n if (debug) {\n logDiff(code, result.code)\n console.log('Output:\\n', result.code + '\\n\\n')\n }\n\n return result\n }\n\n return {\n name: 'router-code-splitter-plugin',\n enforce: 'pre',\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(tsrSplit)) {\n return handleCompilingVirtualFile(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 handleCompilingReferenceFile(code, id)\n }\n\n return null\n },\n\n transformInclude(id) {\n if (!userConfig.autoCodeSplitting) {\n return undefined\n }\n\n if (\n fileIsInRoutesDirectory(id, userConfig.routesDirectory) ||\n id.includes(tsrSplit)\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 userConfig = getConfig(options, ROOT)\n },\n\n webpack(compiler) {\n ROOT = process.cwd()\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","normalize","defaultCodeSplitGroupings","detectCodeSplitGroupingsFromRoute","splitGroupingsSchema","compileCodeSplitReferenceRoute","logDiff","tsrSplit","decodeIdentifier","splitRouteIdentNodes","compileCodeSplitVirtualRoute","pathToFileURL","fileURLToPath","config","getConfig"],"mappings":"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"}
|
|
@@ -2,26 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const routerGeneratorPlugin = require("./router-generator-plugin.cjs");
|
|
4
4
|
const routerCodeSplitterPlugin = require("./router-code-splitter-plugin.cjs");
|
|
5
|
-
const routerHmrPlugin = require("./router-hmr-plugin.cjs");
|
|
6
|
-
const routeAutoimportPlugin = require("./route-autoimport-plugin.cjs");
|
|
7
5
|
const unpluginRouterComposedFactory = (options = {}, meta) => {
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return plugin;
|
|
14
|
-
};
|
|
15
|
-
const routerGenerator = getPlugin(routerGeneratorPlugin.unpluginRouterGeneratorFactory);
|
|
16
|
-
const routerCodeSplitter = getPlugin(routerCodeSplitterPlugin.unpluginRouterCodeSplitterFactory);
|
|
17
|
-
const routeAutoImport = getPlugin(routeAutoimportPlugin.unpluginRouteAutoimportFactory);
|
|
18
|
-
const result = [...routerGenerator, ...routerCodeSplitter, ...routeAutoImport];
|
|
19
|
-
const isProduction = process.env.NODE_ENV === "production";
|
|
20
|
-
if (!isProduction && !options.autoCodeSplitting) {
|
|
21
|
-
const routerHmr = getPlugin(routerHmrPlugin.unpluginRouterHmrFactory);
|
|
22
|
-
result.push(...routerHmr);
|
|
23
|
-
}
|
|
24
|
-
return result;
|
|
6
|
+
const routerGenerator = routerGeneratorPlugin.unpluginRouterGeneratorFactory(options);
|
|
7
|
+
const routerGeneratorOptions = Array.isArray(routerGenerator) ? routerGenerator : [routerGenerator];
|
|
8
|
+
const routerCodeSplitter = routerCodeSplitterPlugin.unpluginRouterCodeSplitterFactory(options, meta);
|
|
9
|
+
const routerCodeSplitterOptions = Array.isArray(routerCodeSplitter) ? routerCodeSplitter : [routerCodeSplitter];
|
|
10
|
+
return [...routerGeneratorOptions, ...routerCodeSplitterOptions];
|
|
25
11
|
};
|
|
26
12
|
exports.unpluginRouterComposedFactory = unpluginRouterComposedFactory;
|
|
27
13
|
//# sourceMappingURL=router-composed-plugin.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-composed-plugin.cjs","sources":["../../../src/core/router-composed-plugin.ts"],"sourcesContent":["import { unpluginRouterGeneratorFactory } from './router-generator-plugin'\nimport { unpluginRouterCodeSplitterFactory } from './router-code-splitter-plugin'\
|
|
1
|
+
{"version":3,"file":"router-composed-plugin.cjs","sources":["../../../src/core/router-composed-plugin.ts"],"sourcesContent":["import { unpluginRouterGeneratorFactory } from './router-generator-plugin'\nimport { unpluginRouterCodeSplitterFactory } from './router-code-splitter-plugin'\n\nimport type { Config } from './config'\nimport type { UnpluginFactory } from 'unplugin'\n\nexport const unpluginRouterComposedFactory: UnpluginFactory<\n Partial<Config> | undefined\n> = (options = {}, meta) => {\n const routerGenerator = unpluginRouterGeneratorFactory(options, meta)\n\n const routerGeneratorOptions = Array.isArray(routerGenerator)\n ? routerGenerator\n : [routerGenerator]\n\n const routerCodeSplitter = unpluginRouterCodeSplitterFactory(options, meta)\n const routerCodeSplitterOptions = Array.isArray(routerCodeSplitter)\n ? routerCodeSplitter\n : [routerCodeSplitter]\n\n return [...routerGeneratorOptions, ...routerCodeSplitterOptions]\n}\n"],"names":["unpluginRouterGeneratorFactory","unpluginRouterCodeSplitterFactory"],"mappings":";;;;AAMO,MAAM,gCAET,CAAC,UAAU,IAAI,SAAS;AACpB,QAAA,kBAAkBA,sBAA+B,+BAAA,OAAa;AAEpE,QAAM,yBAAyB,MAAM,QAAQ,eAAe,IACxD,kBACA,CAAC,eAAe;AAEd,QAAA,qBAAqBC,yBAAAA,kCAAkC,SAAS,IAAI;AAC1E,QAAM,4BAA4B,MAAM,QAAQ,kBAAkB,IAC9D,qBACA,CAAC,kBAAkB;AAEvB,SAAO,CAAC,GAAG,wBAAwB,GAAG,yBAAyB;AACjE;;"}
|
|
@@ -78,17 +78,11 @@ const unpluginRouterGeneratorFactory = (options = {}) => {
|
|
|
78
78
|
});
|
|
79
79
|
},
|
|
80
80
|
vite: {
|
|
81
|
-
configResolved(config$1) {
|
|
81
|
+
async configResolved(config$1) {
|
|
82
82
|
ROOT = config$1.root;
|
|
83
83
|
userConfig = config.getConfig(options, ROOT);
|
|
84
|
-
},
|
|
85
|
-
async buildStart() {
|
|
86
|
-
if (this.environment.name === "server") {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
84
|
await run(generate);
|
|
90
|
-
}
|
|
91
|
-
sharedDuringBuild: true
|
|
85
|
+
}
|
|
92
86
|
},
|
|
93
87
|
rspack(compiler) {
|
|
94
88
|
userConfig = config.getConfig(options, ROOT);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-generator-plugin.cjs","sources":["../../../src/core/router-generator-plugin.ts"],"sourcesContent":["import { isAbsolute, join, normalize, resolve } from 'node:path'\nimport { generator, resolveConfigPath } from '@tanstack/router-generator'\n\nimport { getConfig } from './config'\nimport type { FSWatcher } from 'chokidar'\nimport type { UnpluginFactory } from 'unplugin'\nimport type { Config } from './config'\n\nlet lock = false\nconst checkLock = () => lock\nconst setLock = (bool: boolean) => {\n lock = bool\n}\n\nconst PLUGIN_NAME = 'unplugin:router-generator'\n\nexport const unpluginRouterGeneratorFactory: UnpluginFactory<\n Partial<Config> | undefined\n> = (options = {}) => {\n let ROOT: string = process.cwd()\n let userConfig = options as Config\n\n const getRoutesDirectoryPath = () => {\n return isAbsolute(userConfig.routesDirectory)\n ? userConfig.routesDirectory\n : join(ROOT, userConfig.routesDirectory)\n }\n\n const generate = async () => {\n if (checkLock()) {\n return\n }\n\n setLock(true)\n\n try {\n await generator(userConfig, process.cwd())\n } catch (err) {\n console.error(err)\n console.info()\n } finally {\n setLock(false)\n }\n }\n\n const handleFile = async (\n file: string,\n event: 'create' | 'update' | 'delete',\n ) => {\n const filePath = normalize(file)\n\n if (filePath === resolveConfigPath({ configDirectory: ROOT })) {\n userConfig = getConfig(options, ROOT)\n return\n }\n\n if (\n event === 'update' &&\n filePath === resolve(userConfig.generatedRouteTree)\n ) {\n // skip generating routes if the generated route tree is updated\n return\n }\n\n const routesDirectoryPath = getRoutesDirectoryPath()\n if (filePath.startsWith(routesDirectoryPath)) {\n await generate()\n }\n }\n\n const run: (cb: () => Promise<void> | void) => Promise<void> = async (cb) => {\n if (userConfig.enableRouteGeneration ?? true) {\n await cb()\n }\n }\n\n return {\n name: 'router-generator-plugin',\n async watchChange(id, { event }) {\n await run(async () => {\n await handleFile(id, event)\n })\n },\n vite: {\n configResolved(config) {\n ROOT = config.root\n userConfig = getConfig(options, ROOT)\n\n
|
|
1
|
+
{"version":3,"file":"router-generator-plugin.cjs","sources":["../../../src/core/router-generator-plugin.ts"],"sourcesContent":["import { isAbsolute, join, normalize, resolve } from 'node:path'\nimport { generator, resolveConfigPath } from '@tanstack/router-generator'\n\nimport { getConfig } from './config'\nimport type { FSWatcher } from 'chokidar'\nimport type { UnpluginFactory } from 'unplugin'\nimport type { Config } from './config'\n\nlet lock = false\nconst checkLock = () => lock\nconst setLock = (bool: boolean) => {\n lock = bool\n}\n\nconst PLUGIN_NAME = 'unplugin:router-generator'\n\nexport const unpluginRouterGeneratorFactory: UnpluginFactory<\n Partial<Config> | undefined\n> = (options = {}) => {\n let ROOT: string = process.cwd()\n let userConfig = options as Config\n\n const getRoutesDirectoryPath = () => {\n return isAbsolute(userConfig.routesDirectory)\n ? userConfig.routesDirectory\n : join(ROOT, userConfig.routesDirectory)\n }\n\n const generate = async () => {\n if (checkLock()) {\n return\n }\n\n setLock(true)\n\n try {\n await generator(userConfig, process.cwd())\n } catch (err) {\n console.error(err)\n console.info()\n } finally {\n setLock(false)\n }\n }\n\n const handleFile = async (\n file: string,\n event: 'create' | 'update' | 'delete',\n ) => {\n const filePath = normalize(file)\n\n if (filePath === resolveConfigPath({ configDirectory: ROOT })) {\n userConfig = getConfig(options, ROOT)\n return\n }\n\n if (\n event === 'update' &&\n filePath === resolve(userConfig.generatedRouteTree)\n ) {\n // skip generating routes if the generated route tree is updated\n return\n }\n\n const routesDirectoryPath = getRoutesDirectoryPath()\n if (filePath.startsWith(routesDirectoryPath)) {\n await generate()\n }\n }\n\n const run: (cb: () => Promise<void> | void) => Promise<void> = async (cb) => {\n if (userConfig.enableRouteGeneration ?? true) {\n await cb()\n }\n }\n\n return {\n name: 'router-generator-plugin',\n async watchChange(id, { event }) {\n await run(async () => {\n await handleFile(id, event)\n })\n },\n vite: {\n async configResolved(config) {\n ROOT = config.root\n userConfig = getConfig(options, ROOT)\n\n await run(generate)\n },\n },\n rspack(compiler) {\n userConfig = getConfig(options, ROOT)\n\n let handle: FSWatcher | null = null\n\n compiler.hooks.beforeRun.tapPromise(PLUGIN_NAME, async () => {\n await run(generate)\n })\n\n compiler.hooks.watchRun.tapPromise(PLUGIN_NAME, async () => {\n if (handle) {\n return\n }\n\n // rspack watcher doesn't register newly created files\n const routesDirectoryPath = getRoutesDirectoryPath()\n const chokidar = await import('chokidar')\n handle = chokidar\n .watch(routesDirectoryPath, { ignoreInitial: true })\n .on('add', async () => {\n await run(generate)\n })\n\n await run(generate)\n })\n\n compiler.hooks.watchClose.tap(PLUGIN_NAME, async () => {\n if (handle) {\n await handle.close()\n }\n })\n },\n webpack(compiler) {\n userConfig = getConfig(options, ROOT)\n\n let handle: FSWatcher | null = null\n\n compiler.hooks.beforeRun.tapPromise(PLUGIN_NAME, async () => {\n await run(generate)\n })\n\n compiler.hooks.watchRun.tapPromise(PLUGIN_NAME, async () => {\n if (handle) {\n return\n }\n\n // webpack watcher doesn't register newly created files\n const routesDirectoryPath = getRoutesDirectoryPath()\n const chokidar = await import('chokidar')\n handle = chokidar\n .watch(routesDirectoryPath, { ignoreInitial: true })\n .on('add', async () => {\n await run(generate)\n })\n\n await run(generate)\n })\n\n compiler.hooks.watchClose.tap(PLUGIN_NAME, async () => {\n if (handle) {\n await handle.close()\n }\n })\n\n compiler.hooks.done.tap(PLUGIN_NAME, () => {\n console.info('✅ ' + PLUGIN_NAME + ': route-tree generation done')\n })\n },\n }\n}\n"],"names":["isAbsolute","join","generator","normalize","resolveConfigPath","getConfig","resolve","config"],"mappings":"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"}
|
package/dist/cjs/esbuild.d.cts
CHANGED
|
@@ -12,29 +12,31 @@ declare const TanStackRouterGeneratorEsbuild: (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.cjs').CodeSplittingOptions | undefined;
|
|
29
30
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
30
31
|
routeFilePrefix?: string | undefined;
|
|
31
32
|
routeFileIgnorePattern?: string | undefined;
|
|
32
|
-
|
|
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 TanStackRouterCodeSplitterEsbuild: (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.cjs').CodeSplittingOptions | undefined;
|
|
70
73
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
71
74
|
routeFilePrefix?: string | undefined;
|
|
72
75
|
routeFileIgnorePattern?: string | undefined;
|
|
73
|
-
|
|
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 TanStackRouterEsbuild: (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.cjs').CodeSplittingOptions | undefined;
|
|
111
116
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
112
117
|
routeFilePrefix?: string | undefined;
|
|
113
118
|
routeFileIgnorePattern?: string | undefined;
|
|
114
|
-
|
|
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/dist/cjs/rspack.d.cts
CHANGED
|
@@ -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.cjs').CodeSplittingOptions | undefined;
|
|
33
34
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
34
35
|
routeFilePrefix?: string | undefined;
|
|
35
36
|
routeFileIgnorePattern?: string | undefined;
|
|
36
|
-
|
|
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.cjs').CodeSplittingOptions | undefined;
|
|
78
81
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
79
82
|
routeFilePrefix?: string | undefined;
|
|
80
83
|
routeFileIgnorePattern?: string | undefined;
|
|
81
|
-
|
|
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.cjs').CodeSplittingOptions | undefined;
|
|
123
128
|
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
124
129
|
routeFilePrefix?: string | undefined;
|
|
125
130
|
routeFileIgnorePattern?: string | undefined;
|
|
126
|
-
|
|
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;
|
package/dist/cjs/vite.cjs
CHANGED
|
@@ -12,11 +12,9 @@ const TanStackRouterCodeSplitterVite = unplugin.createVitePlugin(
|
|
|
12
12
|
routerCodeSplitterPlugin.unpluginRouterCodeSplitterFactory
|
|
13
13
|
);
|
|
14
14
|
const TanStackRouterVite = unplugin.createVitePlugin(routerComposedPlugin.unpluginRouterComposedFactory);
|
|
15
|
-
const tanstackRouter = TanStackRouterVite;
|
|
16
15
|
exports.configSchema = config.configSchema;
|
|
17
16
|
exports.TanStackRouterCodeSplitterVite = TanStackRouterCodeSplitterVite;
|
|
18
17
|
exports.TanStackRouterGeneratorVite = TanStackRouterGeneratorVite;
|
|
19
18
|
exports.TanStackRouterVite = TanStackRouterVite;
|
|
20
19
|
exports.default = TanStackRouterVite;
|
|
21
|
-
exports.tanstackRouter = tanstackRouter;
|
|
22
20
|
//# sourceMappingURL=vite.cjs.map
|
package/dist/cjs/vite.cjs.map
CHANGED
|
@@ -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)\
|
|
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)\n\nexport default TanStackRouterVite\nexport {\n configSchema,\n TanStackRouterGeneratorVite,\n TanStackRouterCodeSplitterVite,\n TanStackRouterVite,\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;;;;;;"}
|