@tanstack/router-plugin 1.43.5 → 1.43.9
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/code-splitter.cjs +56 -12
- package/dist/cjs/code-splitter.cjs.map +1 -1
- package/dist/cjs/composed.cjs +1 -4
- package/dist/cjs/composed.cjs.map +1 -1
- package/dist/cjs/router-generator.cjs +54 -4
- package/dist/cjs/router-generator.cjs.map +1 -1
- package/dist/cjs/rspack.cjs +4 -2
- package/dist/cjs/rspack.cjs.map +1 -1
- package/dist/cjs/rspack.d.cts +3 -12
- package/dist/cjs/webpack.cjs +22 -0
- package/dist/cjs/webpack.cjs.map +1 -0
- package/dist/cjs/webpack.d.cts +86 -0
- package/dist/esm/code-splitter.js +56 -12
- package/dist/esm/code-splitter.js.map +1 -1
- package/dist/esm/composed.js +1 -4
- package/dist/esm/composed.js.map +1 -1
- package/dist/esm/router-generator.js +33 -5
- package/dist/esm/router-generator.js.map +1 -1
- package/dist/esm/rspack.d.ts +3 -12
- package/dist/esm/rspack.js +5 -3
- package/dist/esm/rspack.js.map +1 -1
- package/dist/esm/webpack.d.ts +86 -0
- package/dist/esm/webpack.js +22 -0
- package/dist/esm/webpack.js.map +1 -0
- package/package.json +18 -3
- package/src/code-splitter.ts +69 -12
- package/src/composed.ts +1 -9
- package/src/router-generator.ts +38 -7
- package/src/rspack.ts +5 -13
- package/src/webpack.ts +54 -0
|
@@ -31,6 +31,8 @@ plugins: [
|
|
|
31
31
|
`);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
+
const PLUGIN_NAME = "unplugin:router-code-splitter";
|
|
35
|
+
const JoinedSplitPrefix = constants.splitPrefix + ":";
|
|
34
36
|
const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
35
37
|
const debug = Boolean(process.env.TSR_VITE_DEBUG);
|
|
36
38
|
let ROOT = process.cwd();
|
|
@@ -49,11 +51,6 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
|
49
51
|
if (debug) console.info("");
|
|
50
52
|
if (debug) console.info("");
|
|
51
53
|
if (debug) console.info("");
|
|
52
|
-
if (debug) console.info("");
|
|
53
|
-
if (debug) console.info("");
|
|
54
|
-
if (debug) console.info("");
|
|
55
|
-
if (debug) console.info("");
|
|
56
|
-
if (debug) console.info("");
|
|
57
54
|
return compiledVirtualRoute;
|
|
58
55
|
};
|
|
59
56
|
const handleCompilingFile = async (code, id) => {
|
|
@@ -70,13 +67,6 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
|
70
67
|
if (debug) console.info("");
|
|
71
68
|
if (debug) console.info("");
|
|
72
69
|
if (debug) console.info("");
|
|
73
|
-
if (debug) console.info("");
|
|
74
|
-
if (debug) console.info("");
|
|
75
|
-
if (debug) console.info("");
|
|
76
|
-
if (debug) console.info("");
|
|
77
|
-
if (debug) console.info("");
|
|
78
|
-
if (debug) console.info("");
|
|
79
|
-
if (debug) console.info("");
|
|
80
70
|
return compiledReferenceRoute;
|
|
81
71
|
};
|
|
82
72
|
return {
|
|
@@ -115,6 +105,20 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
|
115
105
|
}
|
|
116
106
|
return null;
|
|
117
107
|
},
|
|
108
|
+
transformInclude(transformId) {
|
|
109
|
+
var _a;
|
|
110
|
+
if (!((_a = userConfig.experimental) == null ? void 0 : _a.enableCodeSplitting)) {
|
|
111
|
+
return void 0;
|
|
112
|
+
}
|
|
113
|
+
let id = transformId;
|
|
114
|
+
if (id.startsWith(JoinedSplitPrefix)) {
|
|
115
|
+
id = id.replace(JoinedSplitPrefix, "");
|
|
116
|
+
}
|
|
117
|
+
if (fileIsInRoutesDirectory(id, userConfig.routesDirectory) || id.includes(constants.splitPrefix)) {
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
return false;
|
|
121
|
+
},
|
|
118
122
|
vite: {
|
|
119
123
|
async configResolved(config$1) {
|
|
120
124
|
ROOT = config$1.root;
|
|
@@ -122,7 +126,47 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
|
122
126
|
}
|
|
123
127
|
},
|
|
124
128
|
async rspack(compiler) {
|
|
129
|
+
ROOT = process.cwd();
|
|
130
|
+
compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {
|
|
131
|
+
self.normalModuleFactory.hooks.beforeResolve.tap(
|
|
132
|
+
PLUGIN_NAME,
|
|
133
|
+
(resolveData) => {
|
|
134
|
+
if (resolveData.request.includes(JoinedSplitPrefix)) {
|
|
135
|
+
resolveData.request = resolveData.request.replace(
|
|
136
|
+
JoinedSplitPrefix,
|
|
137
|
+
""
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
);
|
|
142
|
+
});
|
|
143
|
+
userConfig = await config.getConfig(options, ROOT);
|
|
144
|
+
},
|
|
145
|
+
async webpack(compiler) {
|
|
146
|
+
var _a;
|
|
147
|
+
ROOT = process.cwd();
|
|
148
|
+
compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {
|
|
149
|
+
self.normalModuleFactory.hooks.beforeResolve.tap(
|
|
150
|
+
PLUGIN_NAME,
|
|
151
|
+
(resolveData) => {
|
|
152
|
+
if (resolveData.request.includes(JoinedSplitPrefix)) {
|
|
153
|
+
resolveData.request = resolveData.request.replace(
|
|
154
|
+
JoinedSplitPrefix,
|
|
155
|
+
""
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
});
|
|
125
161
|
userConfig = await config.getConfig(options, ROOT);
|
|
162
|
+
if (((_a = userConfig.experimental) == null ? void 0 : _a.enableCodeSplitting) && compiler.options.mode === "production") {
|
|
163
|
+
compiler.hooks.done.tap(PLUGIN_NAME, (stats) => {
|
|
164
|
+
console.log("✅ " + PLUGIN_NAME + ": code-splitting done!");
|
|
165
|
+
setTimeout(() => {
|
|
166
|
+
process.exit(0);
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
}
|
|
126
170
|
}
|
|
127
171
|
};
|
|
128
172
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-splitter.cjs","sources":["../../src/code-splitter.ts"],"sourcesContent":["import { isAbsolute, join } from 'node:path'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\n\nimport {\n compileCodeSplitReferenceRoute,\n compileCodeSplitVirtualRoute,\n} from './compilers'\nimport { getConfig } from './config'\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'\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 = async (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 if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n\n return compiledVirtualRoute\n }\n\n const handleCompilingFile = async (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 if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\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.experimental?.enableCodeSplitting) {\n return null\n }\n\n if (source.startsWith(splitPrefix + ':')) {\n return source.replace(splitPrefix + ':', '')\n }\n return null\n },\n\n async transform(code, id) {\n if (!userConfig.experimental?.enableCodeSplitting) {\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 await 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 await handleCompilingFile(code, id)\n }\n\n return null\n },\n\n vite: {\n async configResolved(config) {\n ROOT = config.root\n userConfig = await getConfig(options, ROOT)\n },\n },\n\n async rspack(compiler) {\n userConfig = await getConfig(options, ROOT)\n },\n }\n}\n"],"names":["isAbsolute","join","compileCodeSplitVirtualRoute","compileCodeSplitReferenceRoute","splitPrefix","pathToFileURL","fileURLToPath","config","getConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-splitter.cjs","sources":["../../src/code-splitter.ts"],"sourcesContent":["import { isAbsolute, join } from 'node:path'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\n\nimport {\n compileCodeSplitReferenceRoute,\n compileCodeSplitVirtualRoute,\n} from './compilers'\nimport { getConfig } from './config'\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 = async (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 = async (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.experimental?.enableCodeSplitting) {\n return null\n }\n\n if (source.startsWith(splitPrefix + ':')) {\n return source.replace(splitPrefix + ':', '')\n }\n return null\n },\n\n async transform(code, id) {\n if (!userConfig.experimental?.enableCodeSplitting) {\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 await 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 await handleCompilingFile(code, id)\n }\n\n return null\n },\n\n transformInclude(transformId) {\n if (!userConfig.experimental?.enableCodeSplitting) {\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 async configResolved(config) {\n ROOT = config.root\n userConfig = await getConfig(options, ROOT)\n },\n },\n\n async 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) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = await getConfig(options, ROOT)\n },\n\n async 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) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = await getConfig(options, ROOT)\n\n if (\n userConfig.experimental?.enableCodeSplitting &&\n compiler.options.mode === 'production'\n ) {\n compiler.hooks.done.tap(PLUGIN_NAME, (stats) => {\n console.log('✅ ' + 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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"}
|
package/dist/cjs/composed.cjs
CHANGED
|
@@ -6,10 +6,7 @@ const unpluginRouterComposedFactory = (options = {}, meta) => {
|
|
|
6
6
|
const routerGenerator$1 = routerGenerator.unpluginRouterGeneratorFactory(options);
|
|
7
7
|
const routerGeneratorOptions = Array.isArray(routerGenerator$1) ? routerGenerator$1 : [routerGenerator$1];
|
|
8
8
|
const routerCodeSplitter = codeSplitter.unpluginRouterCodeSplitterFactory(options, meta);
|
|
9
|
-
|
|
10
|
-
if (meta.framework === "rspack") {
|
|
11
|
-
routerCodeSplitterOptions = [];
|
|
12
|
-
}
|
|
9
|
+
const routerCodeSplitterOptions = Array.isArray(routerCodeSplitter) ? routerCodeSplitter : [routerCodeSplitter];
|
|
13
10
|
return [...routerGeneratorOptions, ...routerCodeSplitterOptions];
|
|
14
11
|
};
|
|
15
12
|
exports.unpluginRouterComposedFactory = unpluginRouterComposedFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composed.cjs","sources":["../../src/composed.ts"],"sourcesContent":["import { unpluginRouterGeneratorFactory } from './router-generator'\nimport { unpluginRouterCodeSplitterFactory } from './code-splitter'\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
|
|
1
|
+
{"version":3,"file":"composed.cjs","sources":["../../src/composed.ts"],"sourcesContent":["import { unpluginRouterGeneratorFactory } from './router-generator'\nimport { unpluginRouterCodeSplitterFactory } from './code-splitter'\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":["routerGenerator","unpluginRouterGeneratorFactory","unpluginRouterCodeSplitterFactory"],"mappings":";;;;AAMO,MAAM,gCAET,CAAC,UAAU,IAAI,SAAS;AACpB,QAAAA,oBAAkBC,+CAA+B,OAAa;AAEpE,QAAM,yBAAyB,MAAM,QAAQD,iBAAe,IACxDA,oBACA,CAACA,iBAAe;AAEd,QAAA,qBAAqBE,aAAAA,kCAAkC,SAAS,IAAI;AAC1E,QAAM,4BAA4B,MAAM,QAAQ,kBAAkB,IAC9D,qBACA,CAAC,kBAAkB;AAEvB,SAAO,CAAC,GAAG,wBAAwB,GAAG,yBAAyB;AACjE;;"}
|
|
@@ -1,4 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
2
24
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
25
|
const node_path = require("node:path");
|
|
4
26
|
const routerGenerator = require("@tanstack/router-generator");
|
|
@@ -13,6 +35,9 @@ const PLUGIN_NAME = "unplugin:router-generator";
|
|
|
13
35
|
const unpluginRouterGeneratorFactory = (options = {}) => {
|
|
14
36
|
let ROOT = process.cwd();
|
|
15
37
|
let userConfig = options;
|
|
38
|
+
const getRoutesDirectoryPath = () => {
|
|
39
|
+
return node_path.isAbsolute(userConfig.routesDirectory) ? userConfig.routesDirectory : node_path.join(ROOT, userConfig.routesDirectory);
|
|
40
|
+
};
|
|
16
41
|
const generate = async () => {
|
|
17
42
|
if (checkLock()) {
|
|
18
43
|
return;
|
|
@@ -36,7 +61,7 @@ const unpluginRouterGeneratorFactory = (options = {}) => {
|
|
|
36
61
|
if (event === "update" && filePath === node_path.resolve(userConfig.generatedRouteTree)) {
|
|
37
62
|
return;
|
|
38
63
|
}
|
|
39
|
-
const routesDirectoryPath =
|
|
64
|
+
const routesDirectoryPath = getRoutesDirectoryPath();
|
|
40
65
|
if (filePath.startsWith(routesDirectoryPath)) {
|
|
41
66
|
await generate();
|
|
42
67
|
}
|
|
@@ -62,10 +87,35 @@ const unpluginRouterGeneratorFactory = (options = {}) => {
|
|
|
62
87
|
},
|
|
63
88
|
async rspack(compiler) {
|
|
64
89
|
userConfig = await config.getConfig(options, ROOT);
|
|
65
|
-
|
|
66
|
-
compiler.hooks.watchRun.tap(PLUGIN_NAME, async () => {
|
|
90
|
+
if (compiler.options.mode === "production") {
|
|
67
91
|
await run(generate);
|
|
68
|
-
}
|
|
92
|
+
} else {
|
|
93
|
+
const routesDirectoryPath = getRoutesDirectoryPath();
|
|
94
|
+
const chokidar = await import("chokidar");
|
|
95
|
+
chokidar.watch(routesDirectoryPath).on("add", async () => {
|
|
96
|
+
await run(generate);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
async webpack(compiler) {
|
|
101
|
+
userConfig = await config.getConfig(options, ROOT);
|
|
102
|
+
if (compiler.options.mode === "production") {
|
|
103
|
+
await run(generate);
|
|
104
|
+
} else {
|
|
105
|
+
const routesDirectoryPath = getRoutesDirectoryPath();
|
|
106
|
+
const chokidar = await import("chokidar");
|
|
107
|
+
chokidar.watch(routesDirectoryPath).on("add", async () => {
|
|
108
|
+
await run(generate);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (compiler.options.mode === "production") {
|
|
112
|
+
compiler.hooks.done.tap(PLUGIN_NAME, (stats) => {
|
|
113
|
+
console.log("✅ " + PLUGIN_NAME + ": route-tree generation done");
|
|
114
|
+
setTimeout(() => {
|
|
115
|
+
process.exit(0);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
}
|
|
69
119
|
}
|
|
70
120
|
};
|
|
71
121
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-generator.cjs","sources":["../../src/router-generator.ts"],"sourcesContent":["import { isAbsolute, join, normalize, resolve } from 'node:path'\nimport { generator } from '@tanstack/router-generator'\n\nimport { getConfig } from './config'\nimport { CONFIG_FILE_NAME } from './constants'\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 generate = async () => {\n if (checkLock()) {\n return\n }\n\n setLock(true)\n\n try {\n await generator(userConfig)\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 === join(ROOT, CONFIG_FILE_NAME)) {\n userConfig = await 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 =
|
|
1
|
+
{"version":3,"file":"router-generator.cjs","sources":["../../src/router-generator.ts"],"sourcesContent":["import { isAbsolute, join, normalize, resolve } from 'node:path'\nimport { generator } from '@tanstack/router-generator'\n\nimport { getConfig } from './config'\nimport { CONFIG_FILE_NAME } from './constants'\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)\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 === join(ROOT, CONFIG_FILE_NAME)) {\n userConfig = await 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 = await getConfig(options, ROOT)\n\n await run(generate)\n },\n },\n async rspack(compiler) {\n userConfig = await getConfig(options, ROOT)\n\n // rspack watcher doesn't register newly created files\n if (compiler.options.mode === 'production') {\n await run(generate)\n } else {\n const routesDirectoryPath = getRoutesDirectoryPath()\n const chokidar = await import('chokidar')\n chokidar.watch(routesDirectoryPath).on('add', async () => {\n await run(generate)\n })\n }\n },\n async webpack(compiler) {\n userConfig = await getConfig(options, ROOT)\n\n // webpack watcher doesn't register newly created files\n if (compiler.options.mode === 'production') {\n await run(generate)\n } else {\n const routesDirectoryPath = getRoutesDirectoryPath()\n const chokidar = await import('chokidar')\n chokidar.watch(routesDirectoryPath).on('add', async () => {\n await run(generate)\n })\n }\n\n if (compiler.options.mode === 'production') {\n compiler.hooks.done.tap(PLUGIN_NAME, (stats) => {\n console.log('✅ ' + PLUGIN_NAME + ': route-tree generation done')\n setTimeout(() => {\n process.exit(0)\n })\n })\n }\n },\n }\n}\n"],"names":["isAbsolute","join","generator","normalize","CONFIG_FILE_NAME","getConfig","resolve","config"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAI,OAAO;AACX,MAAM,YAAY,MAAM;AACxB,MAAM,UAAU,CAAC,SAAkB;AAC1B,SAAA;AACT;AAEA,MAAM,cAAc;AAEb,MAAM,iCAET,CAAC,UAAU,OAAO;AAChB,MAAA,OAAe,QAAQ;AAC3B,MAAI,aAAa;AAEjB,QAAM,yBAAyB,MAAM;AAC5B,WAAAA,qBAAW,WAAW,eAAe,IACxC,WAAW,kBACXC,UAAAA,KAAK,MAAM,WAAW,eAAe;AAAA,EAAA;AAG3C,QAAM,WAAW,YAAY;AAC3B,QAAI,aAAa;AACf;AAAA,IACF;AAEA,YAAQ,IAAI;AAER,QAAA;AACF,YAAMC,gBAAAA,UAAU,UAAU;AAAA,aACnB,KAAK;AACZ,cAAQ,MAAM,GAAG;AACjB,cAAQ,KAAK;AAAA,IAAA,UACb;AACA,cAAQ,KAAK;AAAA,IACf;AAAA,EAAA;AAGI,QAAA,aAAa,OACjB,MACA,UACG;AACG,UAAA,WAAWC,oBAAU,IAAI;AAE/B,QAAI,aAAaF,UAAAA,KAAK,MAAMG,UAAgB,gBAAA,GAAG;AAChC,mBAAA,MAAMC,OAAAA,UAAU,SAAS,IAAI;AAC1C;AAAA,IACF;AAEA,QACE,UAAU,YACV,aAAaC,UAAAA,QAAQ,WAAW,kBAAkB,GAClD;AAEA;AAAA,IACF;AAEA,UAAM,sBAAsB;AACxB,QAAA,SAAS,WAAW,mBAAmB,GAAG;AAC5C,YAAM,SAAS;AAAA,IACjB;AAAA,EAAA;AAGI,QAAA,MAAyD,OAAO,OAAO;AACvE,QAAA,WAAW,yBAAyB,MAAM;AAC5C,YAAM,GAAG;AAAA,IACX;AAAA,EAAA;AAGK,SAAA;AAAA,IACL,MAAM;AAAA,IACN,MAAM,YAAY,IAAI,EAAE,SAAS;AAC/B,YAAM,IAAI,YAAY;AACd,cAAA,WAAW,IAAI,KAAK;AAAA,MAAA,CAC3B;AAAA,IACH;AAAA,IACA,MAAM;AAAA,MACJ,MAAM,eAAeC,UAAQ;AAC3B,eAAOA,SAAO;AACD,qBAAA,MAAMF,OAAAA,UAAU,SAAS,IAAI;AAE1C,cAAM,IAAI,QAAQ;AAAA,MACpB;AAAA,IACF;AAAA,IACA,MAAM,OAAO,UAAU;AACR,mBAAA,MAAMA,OAAAA,UAAU,SAAS,IAAI;AAGtC,UAAA,SAAS,QAAQ,SAAS,cAAc;AAC1C,cAAM,IAAI,QAAQ;AAAA,MAAA,OACb;AACL,cAAM,sBAAsB;AACtB,cAAA,WAAW,MAAM,OAAO,UAAU;AACxC,iBAAS,MAAM,mBAAmB,EAAE,GAAG,OAAO,YAAY;AACxD,gBAAM,IAAI,QAAQ;AAAA,QAAA,CACnB;AAAA,MACH;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,UAAU;AACT,mBAAA,MAAMA,OAAAA,UAAU,SAAS,IAAI;AAGtC,UAAA,SAAS,QAAQ,SAAS,cAAc;AAC1C,cAAM,IAAI,QAAQ;AAAA,MAAA,OACb;AACL,cAAM,sBAAsB;AACtB,cAAA,WAAW,MAAM,OAAO,UAAU;AACxC,iBAAS,MAAM,mBAAmB,EAAE,GAAG,OAAO,YAAY;AACxD,gBAAM,IAAI,QAAQ;AAAA,QAAA,CACnB;AAAA,MACH;AAEI,UAAA,SAAS,QAAQ,SAAS,cAAc;AAC1C,iBAAS,MAAM,KAAK,IAAI,aAAa,CAAC,UAAU;AACtC,kBAAA,IAAI,OAAO,cAAc,8BAA8B;AAC/D,qBAAW,MAAM;AACf,oBAAQ,KAAK,CAAC;AAAA,UAAA,CACf;AAAA,QAAA,CACF;AAAA,MACH;AAAA,IACF;AAAA,EAAA;AAEJ;;"}
|
package/dist/cjs/rspack.cjs
CHANGED
|
@@ -8,13 +8,15 @@ const composed = require("./composed.cjs");
|
|
|
8
8
|
const TanStackRouterGeneratorRspack = /* @__PURE__ */ unplugin.createRspackPlugin(
|
|
9
9
|
routerGenerator.unpluginRouterGeneratorFactory
|
|
10
10
|
);
|
|
11
|
-
const
|
|
11
|
+
const TanStackRouterCodeSplitterRspack = /* @__PURE__ */ unplugin.createRspackPlugin(
|
|
12
|
+
codeSplitter.unpluginRouterCodeSplitterFactory
|
|
13
|
+
);
|
|
12
14
|
const TanStackRouterRspack = /* @__PURE__ */ unplugin.createRspackPlugin(
|
|
13
15
|
composed.unpluginRouterComposedFactory
|
|
14
16
|
);
|
|
15
17
|
exports.configSchema = config.configSchema;
|
|
18
|
+
exports.TanStackRouterCodeSplitterRspack = TanStackRouterCodeSplitterRspack;
|
|
16
19
|
exports.TanStackRouterGeneratorRspack = TanStackRouterGeneratorRspack;
|
|
17
20
|
exports.TanStackRouterRspack = TanStackRouterRspack;
|
|
18
21
|
exports.default = TanStackRouterRspack;
|
|
19
|
-
exports.unstable_TanStackRouterCodeSplitterRspack = unstable_TanStackRouterCodeSplitterRspack;
|
|
20
22
|
//# sourceMappingURL=rspack.cjs.map
|
package/dist/cjs/rspack.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rspack.cjs","sources":["../../src/rspack.ts"],"sourcesContent":["import { createRspackPlugin } from 'unplugin'\nimport { unpluginRouterCodeSplitterFactory } from './code-splitter'\nimport { configSchema } from './config'\nimport { unpluginRouterGeneratorFactory } from './router-generator'\nimport { unpluginRouterComposedFactory } from './composed'\nimport type { Config } from './config'\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * // ...\n * tools: {\n * rspack: {\n * plugins: [TanStackRouterGeneratorRspack()],\n * },\n * },\n * })\n * ```\n */\nconst TanStackRouterGeneratorRspack = /* #__PURE__ */ createRspackPlugin(\n unpluginRouterGeneratorFactory,\n)\n\n/**\n * @
|
|
1
|
+
{"version":3,"file":"rspack.cjs","sources":["../../src/rspack.ts"],"sourcesContent":["import { createRspackPlugin } from 'unplugin'\nimport { unpluginRouterCodeSplitterFactory } from './code-splitter'\nimport { configSchema } from './config'\nimport { unpluginRouterGeneratorFactory } from './router-generator'\nimport { unpluginRouterComposedFactory } from './composed'\nimport type { Config } from './config'\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * // ...\n * tools: {\n * rspack: {\n * plugins: [TanStackRouterGeneratorRspack()],\n * },\n * },\n * })\n * ```\n */\nconst TanStackRouterGeneratorRspack = /* #__PURE__ */ createRspackPlugin(\n unpluginRouterGeneratorFactory,\n)\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * // ...\n * tools: {\n * rspack: {\n * plugins: [TanStackRouterCodeSplitterRspack()],\n * },\n * },\n * })\n * ```\n */\nconst TanStackRouterCodeSplitterRspack = /* #__PURE__ */ createRspackPlugin(\n unpluginRouterCodeSplitterFactory,\n)\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * // ...\n * tools: {\n * rspack: {\n * plugins: [TanStackRouterRspack()],\n * },\n * },\n * })\n * ```\n */\nconst TanStackRouterRspack = /* #__PURE__ */ createRspackPlugin(\n unpluginRouterComposedFactory,\n)\n\nexport default TanStackRouterRspack\nexport {\n configSchema,\n TanStackRouterRspack,\n TanStackRouterGeneratorRspack,\n TanStackRouterCodeSplitterRspack,\n}\nexport type { Config }\n"],"names":["createRspackPlugin","unpluginRouterGeneratorFactory","unpluginRouterCodeSplitterFactory","unpluginRouterComposedFactory"],"mappings":";;;;;;;AAoBA,MAAM,gCAAgDA,yBAAA;AAAA,EACpDC,gBAAA;AACF;AAeA,MAAM,mCAAmDD,yBAAA;AAAA,EACvDE,aAAA;AACF;AAeA,MAAM,uBAAuCF,yBAAA;AAAA,EAC3CG,SAAA;AACF;;;;;;"}
|
package/dist/cjs/rspack.d.cts
CHANGED
|
@@ -32,28 +32,19 @@ declare const TanStackRouterGeneratorRspack: (options?: Partial<{
|
|
|
32
32
|
routeFileIgnorePattern?: string | undefined;
|
|
33
33
|
}> | undefined) => _rspack_core_dist_config_zod.RspackPluginInstance;
|
|
34
34
|
/**
|
|
35
|
-
* @experimental Do not use this plugin yet
|
|
36
|
-
*
|
|
37
|
-
* Unplugin's Rspack integration doesn't support the `resolveId` and `transform` hooks.
|
|
38
|
-
* The code-splitter won't work with Rspack and will probably break your dev and build.
|
|
39
|
-
*
|
|
40
|
-
* If you're familiar with Rspack and know how to overcome our `resolveId` and `transform`
|
|
41
|
-
* limitations, please let us know.
|
|
42
|
-
* We'd love to support it, but we're not sure how to do it yet 😅.
|
|
43
|
-
*
|
|
44
35
|
* @example
|
|
45
36
|
* ```ts
|
|
46
37
|
* export default defineConfig({
|
|
47
38
|
* // ...
|
|
48
39
|
* tools: {
|
|
49
40
|
* rspack: {
|
|
50
|
-
* plugins: [
|
|
41
|
+
* plugins: [TanStackRouterCodeSplitterRspack()],
|
|
51
42
|
* },
|
|
52
43
|
* },
|
|
53
44
|
* })
|
|
54
45
|
* ```
|
|
55
46
|
*/
|
|
56
|
-
declare const
|
|
47
|
+
declare const TanStackRouterCodeSplitterRspack: (options?: Partial<{
|
|
57
48
|
routeFileIgnorePrefix: string;
|
|
58
49
|
routesDirectory: string;
|
|
59
50
|
generatedRouteTree: string;
|
|
@@ -103,5 +94,5 @@ declare const TanStackRouterRspack: (options?: Partial<{
|
|
|
103
94
|
routeFileIgnorePattern?: string | undefined;
|
|
104
95
|
}> | undefined) => _rspack_core_dist_config_zod.RspackPluginInstance;
|
|
105
96
|
export default TanStackRouterRspack;
|
|
106
|
-
export { configSchema, TanStackRouterRspack, TanStackRouterGeneratorRspack,
|
|
97
|
+
export { configSchema, TanStackRouterRspack, TanStackRouterGeneratorRspack, TanStackRouterCodeSplitterRspack, };
|
|
107
98
|
export type { Config };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const unplugin = require("unplugin");
|
|
4
|
+
const codeSplitter = require("./code-splitter.cjs");
|
|
5
|
+
const config = require("./config.cjs");
|
|
6
|
+
const routerGenerator = require("./router-generator.cjs");
|
|
7
|
+
const composed = require("./composed.cjs");
|
|
8
|
+
const TanStackRouterGeneratorWebpack = /* @__PURE__ */ unplugin.createWebpackPlugin(
|
|
9
|
+
routerGenerator.unpluginRouterGeneratorFactory
|
|
10
|
+
);
|
|
11
|
+
const TanStackRouterCodeSplitterWebpack = /* @__PURE__ */ unplugin.createWebpackPlugin(
|
|
12
|
+
codeSplitter.unpluginRouterCodeSplitterFactory
|
|
13
|
+
);
|
|
14
|
+
const TanStackRouterWebpack = /* @__PURE__ */ unplugin.createWebpackPlugin(
|
|
15
|
+
composed.unpluginRouterComposedFactory
|
|
16
|
+
);
|
|
17
|
+
exports.configSchema = config.configSchema;
|
|
18
|
+
exports.TanStackRouterCodeSplitterWebpack = TanStackRouterCodeSplitterWebpack;
|
|
19
|
+
exports.TanStackRouterGeneratorWebpack = TanStackRouterGeneratorWebpack;
|
|
20
|
+
exports.TanStackRouterWebpack = TanStackRouterWebpack;
|
|
21
|
+
exports.default = TanStackRouterWebpack;
|
|
22
|
+
//# sourceMappingURL=webpack.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webpack.cjs","sources":["../../src/webpack.ts"],"sourcesContent":["import { createWebpackPlugin } from 'unplugin'\nimport { unpluginRouterCodeSplitterFactory } from './code-splitter'\nimport { configSchema } from './config'\nimport { unpluginRouterGeneratorFactory } from './router-generator'\nimport { unpluginRouterComposedFactory } from './composed'\nimport type { Config } from './config'\n\n/**\n * @example\n * ```ts\n * export default {\n * // ...\n * plugins: [TanStackRouterGeneratorWebpack()],\n * }\n * ```\n */\nconst TanStackRouterGeneratorWebpack = /* #__PURE__ */ createWebpackPlugin(\n unpluginRouterGeneratorFactory,\n)\n\n/**\n * @example\n * ```ts\n * export default {\n * // ...\n * plugins: [TanStackRouterCodeSplitterWebpack()],\n * }\n * ```\n */\nconst TanStackRouterCodeSplitterWebpack = /* #__PURE__ */ createWebpackPlugin(\n unpluginRouterCodeSplitterFactory,\n)\n\n/**\n * @example\n * ```ts\n * export default {\n * // ...\n * plugins: [TanStackRouterWebpack()],\n * }\n * ```\n */\nconst TanStackRouterWebpack = /* #__PURE__ */ createWebpackPlugin(\n unpluginRouterComposedFactory,\n)\n\nexport default TanStackRouterWebpack\nexport {\n configSchema,\n TanStackRouterWebpack,\n TanStackRouterGeneratorWebpack,\n TanStackRouterCodeSplitterWebpack,\n}\nexport type { Config }\n"],"names":["createWebpackPlugin","unpluginRouterGeneratorFactory","unpluginRouterCodeSplitterFactory","unpluginRouterComposedFactory"],"mappings":";;;;;;;AAgBA,MAAM,iCAAiDA,yBAAA;AAAA,EACrDC,gBAAA;AACF;AAWA,MAAM,oCAAoDD,yBAAA;AAAA,EACxDE,aAAA;AACF;AAWA,MAAM,wBAAwCF,yBAAA;AAAA,EAC5CG,SAAA;AACF;;;;;;"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { configSchema, Config } from './config.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* export default {
|
|
7
|
+
* // ...
|
|
8
|
+
* plugins: [TanStackRouterGeneratorWebpack()],
|
|
9
|
+
* }
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
declare const TanStackRouterGeneratorWebpack: (options?: Partial<{
|
|
13
|
+
routeFileIgnorePrefix: string;
|
|
14
|
+
routesDirectory: string;
|
|
15
|
+
generatedRouteTree: string;
|
|
16
|
+
quoteStyle: "single" | "double";
|
|
17
|
+
semicolons: boolean;
|
|
18
|
+
disableTypes: boolean;
|
|
19
|
+
addExtensions: boolean;
|
|
20
|
+
disableLogging: boolean;
|
|
21
|
+
routeTreeFileHeader: string[];
|
|
22
|
+
routeTreeFileFooter: string[];
|
|
23
|
+
enableRouteGeneration?: boolean | undefined;
|
|
24
|
+
experimental?: {
|
|
25
|
+
enableCodeSplitting?: boolean | undefined;
|
|
26
|
+
} | undefined;
|
|
27
|
+
routeFilePrefix?: string | undefined;
|
|
28
|
+
routeFileIgnorePattern?: string | undefined;
|
|
29
|
+
}> | undefined) => import('unplugin').WebpackPluginInstance;
|
|
30
|
+
/**
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* export default {
|
|
34
|
+
* // ...
|
|
35
|
+
* plugins: [TanStackRouterCodeSplitterWebpack()],
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
declare const TanStackRouterCodeSplitterWebpack: (options?: Partial<{
|
|
40
|
+
routeFileIgnorePrefix: string;
|
|
41
|
+
routesDirectory: string;
|
|
42
|
+
generatedRouteTree: string;
|
|
43
|
+
quoteStyle: "single" | "double";
|
|
44
|
+
semicolons: boolean;
|
|
45
|
+
disableTypes: boolean;
|
|
46
|
+
addExtensions: boolean;
|
|
47
|
+
disableLogging: boolean;
|
|
48
|
+
routeTreeFileHeader: string[];
|
|
49
|
+
routeTreeFileFooter: string[];
|
|
50
|
+
enableRouteGeneration?: boolean | undefined;
|
|
51
|
+
experimental?: {
|
|
52
|
+
enableCodeSplitting?: boolean | undefined;
|
|
53
|
+
} | undefined;
|
|
54
|
+
routeFilePrefix?: string | undefined;
|
|
55
|
+
routeFileIgnorePattern?: string | undefined;
|
|
56
|
+
}> | undefined) => import('unplugin').WebpackPluginInstance;
|
|
57
|
+
/**
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* export default {
|
|
61
|
+
* // ...
|
|
62
|
+
* plugins: [TanStackRouterWebpack()],
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
declare const TanStackRouterWebpack: (options?: Partial<{
|
|
67
|
+
routeFileIgnorePrefix: string;
|
|
68
|
+
routesDirectory: string;
|
|
69
|
+
generatedRouteTree: string;
|
|
70
|
+
quoteStyle: "single" | "double";
|
|
71
|
+
semicolons: boolean;
|
|
72
|
+
disableTypes: boolean;
|
|
73
|
+
addExtensions: boolean;
|
|
74
|
+
disableLogging: boolean;
|
|
75
|
+
routeTreeFileHeader: string[];
|
|
76
|
+
routeTreeFileFooter: string[];
|
|
77
|
+
enableRouteGeneration?: boolean | undefined;
|
|
78
|
+
experimental?: {
|
|
79
|
+
enableCodeSplitting?: boolean | undefined;
|
|
80
|
+
} | undefined;
|
|
81
|
+
routeFilePrefix?: string | undefined;
|
|
82
|
+
routeFileIgnorePattern?: string | undefined;
|
|
83
|
+
}> | undefined) => import('unplugin').WebpackPluginInstance;
|
|
84
|
+
export default TanStackRouterWebpack;
|
|
85
|
+
export { configSchema, TanStackRouterWebpack, TanStackRouterGeneratorWebpack, TanStackRouterCodeSplitterWebpack, };
|
|
86
|
+
export type { Config };
|
|
@@ -29,6 +29,8 @@ plugins: [
|
|
|
29
29
|
`);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
+
const PLUGIN_NAME = "unplugin:router-code-splitter";
|
|
33
|
+
const JoinedSplitPrefix = splitPrefix + ":";
|
|
32
34
|
const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
33
35
|
const debug = Boolean(process.env.TSR_VITE_DEBUG);
|
|
34
36
|
let ROOT = process.cwd();
|
|
@@ -47,11 +49,6 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
|
47
49
|
if (debug) console.info("");
|
|
48
50
|
if (debug) console.info("");
|
|
49
51
|
if (debug) console.info("");
|
|
50
|
-
if (debug) console.info("");
|
|
51
|
-
if (debug) console.info("");
|
|
52
|
-
if (debug) console.info("");
|
|
53
|
-
if (debug) console.info("");
|
|
54
|
-
if (debug) console.info("");
|
|
55
52
|
return compiledVirtualRoute;
|
|
56
53
|
};
|
|
57
54
|
const handleCompilingFile = async (code, id) => {
|
|
@@ -68,13 +65,6 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
|
68
65
|
if (debug) console.info("");
|
|
69
66
|
if (debug) console.info("");
|
|
70
67
|
if (debug) console.info("");
|
|
71
|
-
if (debug) console.info("");
|
|
72
|
-
if (debug) console.info("");
|
|
73
|
-
if (debug) console.info("");
|
|
74
|
-
if (debug) console.info("");
|
|
75
|
-
if (debug) console.info("");
|
|
76
|
-
if (debug) console.info("");
|
|
77
|
-
if (debug) console.info("");
|
|
78
68
|
return compiledReferenceRoute;
|
|
79
69
|
};
|
|
80
70
|
return {
|
|
@@ -113,6 +103,20 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
|
113
103
|
}
|
|
114
104
|
return null;
|
|
115
105
|
},
|
|
106
|
+
transformInclude(transformId) {
|
|
107
|
+
var _a;
|
|
108
|
+
if (!((_a = userConfig.experimental) == null ? void 0 : _a.enableCodeSplitting)) {
|
|
109
|
+
return void 0;
|
|
110
|
+
}
|
|
111
|
+
let id = transformId;
|
|
112
|
+
if (id.startsWith(JoinedSplitPrefix)) {
|
|
113
|
+
id = id.replace(JoinedSplitPrefix, "");
|
|
114
|
+
}
|
|
115
|
+
if (fileIsInRoutesDirectory(id, userConfig.routesDirectory) || id.includes(splitPrefix)) {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
},
|
|
116
120
|
vite: {
|
|
117
121
|
async configResolved(config) {
|
|
118
122
|
ROOT = config.root;
|
|
@@ -120,7 +124,47 @@ const unpluginRouterCodeSplitterFactory = (options = {}, { framework }) => {
|
|
|
120
124
|
}
|
|
121
125
|
},
|
|
122
126
|
async rspack(compiler) {
|
|
127
|
+
ROOT = process.cwd();
|
|
128
|
+
compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {
|
|
129
|
+
self.normalModuleFactory.hooks.beforeResolve.tap(
|
|
130
|
+
PLUGIN_NAME,
|
|
131
|
+
(resolveData) => {
|
|
132
|
+
if (resolveData.request.includes(JoinedSplitPrefix)) {
|
|
133
|
+
resolveData.request = resolveData.request.replace(
|
|
134
|
+
JoinedSplitPrefix,
|
|
135
|
+
""
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
);
|
|
140
|
+
});
|
|
141
|
+
userConfig = await getConfig(options, ROOT);
|
|
142
|
+
},
|
|
143
|
+
async webpack(compiler) {
|
|
144
|
+
var _a;
|
|
145
|
+
ROOT = process.cwd();
|
|
146
|
+
compiler.hooks.beforeCompile.tap(PLUGIN_NAME, (self) => {
|
|
147
|
+
self.normalModuleFactory.hooks.beforeResolve.tap(
|
|
148
|
+
PLUGIN_NAME,
|
|
149
|
+
(resolveData) => {
|
|
150
|
+
if (resolveData.request.includes(JoinedSplitPrefix)) {
|
|
151
|
+
resolveData.request = resolveData.request.replace(
|
|
152
|
+
JoinedSplitPrefix,
|
|
153
|
+
""
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
});
|
|
123
159
|
userConfig = await getConfig(options, ROOT);
|
|
160
|
+
if (((_a = userConfig.experimental) == null ? void 0 : _a.enableCodeSplitting) && compiler.options.mode === "production") {
|
|
161
|
+
compiler.hooks.done.tap(PLUGIN_NAME, (stats) => {
|
|
162
|
+
console.log("✅ " + PLUGIN_NAME + ": code-splitting done!");
|
|
163
|
+
setTimeout(() => {
|
|
164
|
+
process.exit(0);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
}
|
|
124
168
|
}
|
|
125
169
|
};
|
|
126
170
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-splitter.js","sources":["../../src/code-splitter.ts"],"sourcesContent":["import { isAbsolute, join } from 'node:path'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\n\nimport {\n compileCodeSplitReferenceRoute,\n compileCodeSplitVirtualRoute,\n} from './compilers'\nimport { getConfig } from './config'\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'\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 = async (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 if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n\n return compiledVirtualRoute\n }\n\n const handleCompilingFile = async (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 if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\n if (debug) console.info('')\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.experimental?.enableCodeSplitting) {\n return null\n }\n\n if (source.startsWith(splitPrefix + ':')) {\n return source.replace(splitPrefix + ':', '')\n }\n return null\n },\n\n async transform(code, id) {\n if (!userConfig.experimental?.enableCodeSplitting) {\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 await 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 await handleCompilingFile(code, id)\n }\n\n return null\n },\n\n vite: {\n async configResolved(config) {\n ROOT = config.root\n userConfig = await getConfig(options, ROOT)\n },\n },\n\n async rspack(compiler) {\n userConfig = await getConfig(options, ROOT)\n },\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-splitter.js","sources":["../../src/code-splitter.ts"],"sourcesContent":["import { isAbsolute, join } from 'node:path'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\n\nimport {\n compileCodeSplitReferenceRoute,\n compileCodeSplitVirtualRoute,\n} from './compilers'\nimport { getConfig } from './config'\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 = async (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 = async (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.experimental?.enableCodeSplitting) {\n return null\n }\n\n if (source.startsWith(splitPrefix + ':')) {\n return source.replace(splitPrefix + ':', '')\n }\n return null\n },\n\n async transform(code, id) {\n if (!userConfig.experimental?.enableCodeSplitting) {\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 await 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 await handleCompilingFile(code, id)\n }\n\n return null\n },\n\n transformInclude(transformId) {\n if (!userConfig.experimental?.enableCodeSplitting) {\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 async configResolved(config) {\n ROOT = config.root\n userConfig = await getConfig(options, ROOT)\n },\n },\n\n async 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) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = await getConfig(options, ROOT)\n },\n\n async 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) => {\n if (resolveData.request.includes(JoinedSplitPrefix)) {\n resolveData.request = resolveData.request.replace(\n JoinedSplitPrefix,\n '',\n )\n }\n },\n )\n })\n\n userConfig = await getConfig(options, ROOT)\n\n if (\n userConfig.experimental?.enableCodeSplitting &&\n compiler.options.mode === 'production'\n ) {\n compiler.hooks.done.tap(PLUGIN_NAME, (stats) => {\n console.log('✅ ' + PLUGIN_NAME + ': code-splitting done!')\n setTimeout(() => {\n process.exit(0)\n })\n })\n }\n },\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/esm/composed.js
CHANGED
|
@@ -4,10 +4,7 @@ const unpluginRouterComposedFactory = (options = {}, meta) => {
|
|
|
4
4
|
const routerGenerator = unpluginRouterGeneratorFactory(options);
|
|
5
5
|
const routerGeneratorOptions = Array.isArray(routerGenerator) ? routerGenerator : [routerGenerator];
|
|
6
6
|
const routerCodeSplitter = unpluginRouterCodeSplitterFactory(options, meta);
|
|
7
|
-
|
|
8
|
-
if (meta.framework === "rspack") {
|
|
9
|
-
routerCodeSplitterOptions = [];
|
|
10
|
-
}
|
|
7
|
+
const routerCodeSplitterOptions = Array.isArray(routerCodeSplitter) ? routerCodeSplitter : [routerCodeSplitter];
|
|
11
8
|
return [...routerGeneratorOptions, ...routerCodeSplitterOptions];
|
|
12
9
|
};
|
|
13
10
|
export {
|