@tanstack/router-vite-plugin 1.2.2 → 1.2.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/build/cjs/node_modules/.pnpm/prettier@3.0.2/node_modules/prettier/index.js +14 -14
- package/build/cjs/node_modules/.pnpm/prettier@3.0.2/node_modules/prettier/index.js.map +1 -1
- package/build/cjs/packages/router-cli/src/generator.js +29 -8
- package/build/cjs/packages/router-cli/src/generator.js.map +1 -1
- package/build/esm/index.js +13 -10
- package/build/esm/index.js.map +1 -1
- package/package.json +3 -3
- package/build/cjs/_virtual/_commonjsHelpers.js +0 -16
- package/build/cjs/_virtual/_commonjsHelpers.js.map +0 -1
- package/build/cjs/_virtual/index.js +0 -16
- package/build/cjs/_virtual/index.js.map +0 -1
- package/build/cjs/_virtual/make-dir.js +0 -16
- package/build/cjs/_virtual/make-dir.js.map +0 -1
- package/build/cjs/_virtual/utils.js +0 -16
- package/build/cjs/_virtual/utils.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/copy/copy-sync.js +0 -188
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/copy/copy-sync.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/copy/copy.js +0 -255
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/copy/copy.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/copy/index.js +0 -24
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/copy/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/empty/index.js +0 -59
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/empty/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/file.js +0 -87
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/file.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/index.js +0 -40
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/link.js +0 -84
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/link.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/symlink-paths.js +0 -116
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/symlink-paths.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/symlink-type.js +0 -46
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/symlink-type.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/symlink.js +0 -105
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/ensure/symlink.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/fs/index.js +0 -146
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/fs/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/index.js +0 -41
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/json/index.js +0 -34
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/json/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/json/jsonfile.js +0 -26
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/json/jsonfile.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/json/output-json-sync.js +0 -28
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/json/output-json-sync.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/json/output-json.js +0 -28
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/json/output-json.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/mkdirs/index.js +0 -32
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/mkdirs/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/mkdirs/make-dir.js +0 -49
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/mkdirs/make-dir.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/mkdirs/utils.js +0 -35
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/mkdirs/utils.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/move/index.js +0 -24
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/move/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/move/move-sync.js +0 -74
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/move/move-sync.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/move/move.js +0 -96
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/move/move.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/output-file/index.js +0 -59
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/output-file/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/path-exists/index.js +0 -30
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/path-exists/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/remove/index.js +0 -39
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/remove/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/remove/rimraf.js +0 -319
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/remove/rimraf.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/util/stat.js +0 -172
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/util/stat.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/util/utimes.js +0 -41
- package/build/cjs/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/util/utimes.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.10/node_modules/graceful-fs/clone.js +0 -36
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.10/node_modules/graceful-fs/clone.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.10/node_modules/graceful-fs/graceful-fs.js +0 -469
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.10/node_modules/graceful-fs/graceful-fs.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.10/node_modules/graceful-fs/legacy-streams.js +0 -135
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.10/node_modules/graceful-fs/legacy-streams.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.10/node_modules/graceful-fs/polyfills.js +0 -372
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.10/node_modules/graceful-fs/polyfills.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/clone.js +0 -45
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/clone.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/graceful-fs.js +0 -479
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/graceful-fs.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/legacy-streams.js +0 -143
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/legacy-streams.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/polyfills.js +0 -380
- package/build/cjs/node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/polyfills.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/jsonfile@6.1.0/node_modules/jsonfile/index.js +0 -108
- package/build/cjs/node_modules/.pnpm/jsonfile@6.1.0/node_modules/jsonfile/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/jsonfile@6.1.0/node_modules/jsonfile/utils.js +0 -29
- package/build/cjs/node_modules/.pnpm/jsonfile@6.1.0/node_modules/jsonfile/utils.js.map +0 -1
|
@@ -11,10 +11,29 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
var path = require('path');
|
|
14
|
-
var
|
|
14
|
+
var fs = require('fs/promises');
|
|
15
15
|
var index = require('../../../node_modules/.pnpm/prettier@3.0.2/node_modules/prettier/index.js');
|
|
16
16
|
var reactRouter = require('@tanstack/react-router');
|
|
17
17
|
|
|
18
|
+
function _interopNamespaceDefault(e) {
|
|
19
|
+
var n = Object.create(null);
|
|
20
|
+
if (e) {
|
|
21
|
+
Object.keys(e).forEach(function (k) {
|
|
22
|
+
if (k !== 'default') {
|
|
23
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
24
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () { return e[k]; }
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
n.default = e;
|
|
32
|
+
return Object.freeze(n);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
|
|
36
|
+
|
|
18
37
|
let latestTask = 0;
|
|
19
38
|
const rootPathId = '__root';
|
|
20
39
|
const fileRouteRegex = /new\s+FileRoute\(([^)]*)\)/g;
|
|
@@ -26,7 +45,7 @@ async function getRouteNodes(config) {
|
|
|
26
45
|
let routeNodes = [];
|
|
27
46
|
async function recurse(dir) {
|
|
28
47
|
const fullDir = path.resolve(config.routesDirectory, dir);
|
|
29
|
-
let dirList = await
|
|
48
|
+
let dirList = await fs__namespace.readdir(fullDir);
|
|
30
49
|
dirList = dirList.filter(d => {
|
|
31
50
|
if (d.startsWith('.') || routeFileIgnorePrefix && d.startsWith(routeFileIgnorePrefix)) {
|
|
32
51
|
return false;
|
|
@@ -39,7 +58,7 @@ async function getRouteNodes(config) {
|
|
|
39
58
|
await Promise.all(dirList.map(async fileName => {
|
|
40
59
|
const fullPath = path.join(fullDir, fileName);
|
|
41
60
|
const relativePath = path.join(dir, fileName);
|
|
42
|
-
const stat = await
|
|
61
|
+
const stat = await fs__namespace.stat(fullPath);
|
|
43
62
|
if (stat.isDirectory()) {
|
|
44
63
|
await recurse(relativePath);
|
|
45
64
|
} else {
|
|
@@ -150,7 +169,7 @@ async function generator(config) {
|
|
|
150
169
|
preRouteNodes.forEach(node => handleNode(node));
|
|
151
170
|
async function buildRouteConfig(nodes, depth = 1) {
|
|
152
171
|
const children = nodes.map(async node => {
|
|
153
|
-
const routeCode = await
|
|
172
|
+
const routeCode = await fs__namespace.readFile(node.fullPath, 'utf-8');
|
|
154
173
|
|
|
155
174
|
// Ensure the boilerplate for the route exists
|
|
156
175
|
if (node.isRoot) {
|
|
@@ -166,7 +185,7 @@ async function generator(config) {
|
|
|
166
185
|
const quote = config.quoteStyle === 'single' ? `'` : `"`;
|
|
167
186
|
const replaced = routeCode.replace(fileRouteRegex, `new FileRoute(${quote}${escapedRoutePath}${quote})`);
|
|
168
187
|
if (replaced !== routeCode) {
|
|
169
|
-
await
|
|
188
|
+
await fs__namespace.writeFile(node.fullPath, replaced);
|
|
170
189
|
}
|
|
171
190
|
const route = `${node.variableName}Route`;
|
|
172
191
|
if (node.children?.length) {
|
|
@@ -209,7 +228,7 @@ async function generator(config) {
|
|
|
209
228
|
singleQuote: config.quoteStyle === 'single',
|
|
210
229
|
parser: 'typescript'
|
|
211
230
|
});
|
|
212
|
-
const routeTreeContent = await
|
|
231
|
+
const routeTreeContent = await fs__namespace.readFile(path.resolve(config.generatedRouteTree), 'utf-8').catch(err => {
|
|
213
232
|
if (err.code === 'ENOENT') {
|
|
214
233
|
return undefined;
|
|
215
234
|
}
|
|
@@ -217,9 +236,11 @@ async function generator(config) {
|
|
|
217
236
|
});
|
|
218
237
|
if (!checkLatest()) return;
|
|
219
238
|
if (routeTreeContent !== routeConfigFileContent) {
|
|
220
|
-
await
|
|
239
|
+
await fs__namespace.mkdir(path.dirname(path.resolve(config.generatedRouteTree)), {
|
|
240
|
+
recursive: true
|
|
241
|
+
});
|
|
221
242
|
if (!checkLatest()) return;
|
|
222
|
-
await
|
|
243
|
+
await fs__namespace.writeFile(path.resolve(config.generatedRouteTree), routeConfigFileContent);
|
|
223
244
|
}
|
|
224
245
|
console.log(`🌲 Processed ${routeNodes.length} routes in ${Date.now() - start}ms`);
|
|
225
246
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sources":["../../../../../../router-cli/src/generator.ts"],"sourcesContent":["import path from 'path'\nimport * as fs from 'fs-extra'\nimport * as prettier from 'prettier'\nimport { Config } from './config'\nimport { cleanPath, trimPathLeft } from '@tanstack/react-router'\n\nlet latestTask = 0\nexport const rootPathId = '__root'\nexport const fileRouteRegex = /new\\s+FileRoute\\(([^)]*)\\)/g\n\nexport type RouteNode = {\n filePath: string\n fullPath: string\n variableName: string\n routePath?: string\n cleanedPath?: string\n path?: string\n isNonPath?: boolean\n isNonLayout?: boolean\n isRoute?: boolean\n isLoader?: boolean\n isComponent?: boolean\n isVirtual?: boolean\n isRoot?: boolean\n children?: RouteNode[]\n parent?: RouteNode\n}\n\nasync function getRouteNodes(config: Config) {\n const { routeFilePrefix, routeFileIgnorePrefix } = config\n\n let routeNodes: RouteNode[] = []\n\n async function recurse(dir: string) {\n const fullDir = path.resolve(config.routesDirectory, dir)\n let dirList = await fs.readdir(fullDir)\n\n dirList = dirList.filter((d) => {\n if (\n d.startsWith('.') ||\n (routeFileIgnorePrefix && d.startsWith(routeFileIgnorePrefix))\n ) {\n return false\n }\n\n if (routeFilePrefix) {\n return d.startsWith(routeFilePrefix)\n }\n\n return true\n })\n\n await Promise.all(\n dirList.map(async (fileName) => {\n const fullPath = path.join(fullDir, fileName)\n const relativePath = path.join(dir, fileName)\n const stat = await fs.stat(fullPath)\n\n if (stat.isDirectory()) {\n await recurse(relativePath)\n } else {\n const filePath = path.join(dir, fileName)\n const filePathNoExt = removeExt(filePath)\n let routePath =\n replaceBackslash(\n cleanPath(`/${filePathNoExt.split('.').join('/')}`),\n ) ?? ''\n const variableName = fileToVariable(routePath)\n\n // Remove the index from the route path and\n // if the route path is empty, use `/'\n if (routePath === 'index') {\n routePath = '/'\n } else if (routePath.endsWith('/index')) {\n routePath = routePath.replace(/\\/index$/, '/')\n }\n\n routeNodes.push({\n filePath,\n fullPath,\n routePath,\n variableName,\n })\n }\n }),\n )\n\n return routeNodes\n }\n\n await recurse('./')\n\n return routeNodes\n}\n\nlet first = false\nlet skipMessage = false\n\ntype RouteSubNode = {\n component?: RouteNode\n loader?: RouteNode\n}\n\nexport async function generator(config: Config) {\n console.log()\n\n if (!first) {\n console.log('🔄 Generating routes...')\n first = true\n } else if (skipMessage) {\n skipMessage = false\n } else {\n console.log('♻️ Regenerating routes...')\n }\n\n const taskId = latestTask + 1\n latestTask = taskId\n\n const checkLatest = () => {\n if (latestTask !== taskId) {\n skipMessage = true\n return false\n }\n\n return true\n }\n\n const start = Date.now()\n const routePathIdPrefix = config.routeFilePrefix ?? ''\n\n let preRouteNodes = await getRouteNodes(config)\n\n const sortRouteNodes = (nodes: RouteNode[]): RouteNode[] => {\n return multiSortBy(nodes, [\n (d) => (d.routePath === '/' ? -1 : 1),\n (d) => d.routePath?.split('/').length,\n (d) => (d.filePath?.match(/[./]index[.]/) ? 1 : -1),\n (d) => (d.filePath?.match(/[./]route[.]/) ? -1 : 1),\n (d) => (d.routePath?.endsWith('/') ? -1 : 1),\n (d) => d.routePath,\n ]).filter((d) => d.routePath !== `/${routePathIdPrefix + rootPathId}`)\n }\n\n preRouteNodes = sortRouteNodes(preRouteNodes)\n\n const routeTree: RouteNode[] = []\n const routePiecesByPath: Record<string, RouteSubNode> = {}\n\n // Loop over the flat list of routeNodes and\n // build up a tree based on the routeNodes' routePath\n let routeNodes: RouteNode[] = []\n\n const handleNode = (node: RouteNode) => {\n if (config.future?.unstable_codeSplitting) {\n node.isRoute = node.routePath?.endsWith('/route')\n node.isComponent = node.routePath?.endsWith('/component')\n node.isLoader = node.routePath?.endsWith('/loader')\n\n if (node.isComponent || node.isLoader || node.isRoute) {\n node.routePath = node.routePath?.replace(\n /\\/(component|loader|route)$/,\n '',\n )\n }\n }\n\n const parentRoute = hasParentRoute(routeNodes, node.routePath)\n if (parentRoute) node.parent = parentRoute\n\n node.path = node.parent\n ? node.routePath?.replace(node.parent.routePath!, '') || '/'\n : node.routePath\n\n const trimmedPath = trimPathLeft(node.path ?? '')\n\n const split = trimmedPath?.split('/') ?? []\n let first = split[0] ?? trimmedPath ?? ''\n\n node.isNonPath = first.startsWith('_')\n node.isNonLayout = first.endsWith('_')\n\n node.cleanedPath = removeUnderscores(node.path) ?? ''\n\n if (config.future?.unstable_codeSplitting) {\n if (node.isLoader || node.isComponent) {\n routePiecesByPath[node.routePath!] =\n routePiecesByPath[node.routePath!] || {}\n\n routePiecesByPath[node.routePath!]![\n node.isLoader ? 'loader' : 'component'\n ] = node\n\n const anchorRoute = routeNodes.find(\n (d) => d.routePath === node.routePath,\n )\n if (!anchorRoute) {\n handleNode({\n ...node,\n isVirtual: true,\n })\n }\n // if (!node.parent) {\n // }\n\n // componentOrLoader.isVirtual = true\n // handleNode(componentOrLoader)\n return\n }\n }\n\n if (node.parent) {\n node.parent.children = node.parent.children ?? []\n node.parent.children.push(node)\n } else {\n routeTree.push(node)\n }\n\n routeNodes.push(node)\n }\n\n preRouteNodes.forEach((node) => handleNode(node))\n\n async function buildRouteConfig(\n nodes: RouteNode[],\n depth = 1,\n ): Promise<string> {\n const children = nodes.map(async (node) => {\n const routeCode = await fs.readFile(node.fullPath, 'utf-8')\n\n // Ensure the boilerplate for the route exists\n if (node.isRoot) {\n return\n }\n\n // Ensure that new FileRoute(anything?) is replaced with FileRoute(${node.routePath})\n // routePath can contain $ characters, which have special meaning when used in replace\n // so we have to escape it by turning all $ into $$. But since we do it through a replace call\n // we have to double escape it into $$$$. For more information, see\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_the_replacement\n const escapedRoutePath = node.routePath?.replaceAll('$', '$$$$') ?? ''\n const quote = config.quoteStyle === 'single' ? `'` : `\"`\n const replaced = routeCode.replace(\n fileRouteRegex,\n `new FileRoute(${quote}${escapedRoutePath}${quote})`,\n )\n\n if (replaced !== routeCode) {\n await fs.writeFile(node.fullPath, replaced)\n }\n\n const route = `${node.variableName}Route`\n\n if (node.children?.length) {\n const childConfigs = await buildRouteConfig(node.children, depth + 1)\n return `${route}.addChildren([${spaces(depth * 4)}${childConfigs}])`\n }\n\n return route\n })\n\n return (await Promise.all(children)).filter(Boolean).join(`,`)\n }\n\n const routeConfigChildrenText = await buildRouteConfig(routeTree)\n\n const sortedRouteNodes = multiSortBy(routeNodes, [\n (d) =>\n d.routePath?.includes(`/${routePathIdPrefix + rootPathId}`) ? -1 : 1,\n (d) => d.routePath?.split('/').length,\n (d) => (d.routePath?.endsWith(\"index'\") ? -1 : 1),\n (d) => d,\n ])\n\n const imports = Object.entries({\n FileRoute: sortedRouteNodes.some((d) => d.isVirtual),\n lazyFn: sortedRouteNodes.some(\n (node) => routePiecesByPath[node.routePath!]?.loader,\n ),\n lazyRouteComponent: sortedRouteNodes.some(\n (node) => routePiecesByPath[node.routePath!]?.component,\n ),\n })\n .filter((d) => d[1])\n .map((d) => d[0])\n\n const routeImports = [\n imports.length\n ? `import { ${imports.join(', ')} } from '@tanstack/react-router'\\n`\n : '',\n `import { Route as rootRoute } from './${sanitize(\n path.relative(\n path.dirname(config.generatedRouteTree),\n path.resolve(config.routesDirectory, routePathIdPrefix + rootPathId),\n ),\n )}'`,\n ...sortedRouteNodes\n .filter((d) => !d.isVirtual)\n .map((node) => {\n return `import { Route as ${\n node.variableName\n }Import } from './${sanitize(\n removeExt(\n path.relative(\n path.dirname(config.generatedRouteTree),\n path.resolve(config.routesDirectory, node.filePath),\n ),\n ),\n )}'`\n }),\n '\\n',\n sortedRouteNodes\n .filter((d) => d.isVirtual)\n .map((node) => {\n return `const ${node.variableName}Import = new FileRoute('${node.routePath}').createRoute()`\n })\n .join('\\n'),\n '\\n',\n sortedRouteNodes\n .map((node) => {\n const loaderNode = routePiecesByPath[node.routePath!]?.loader\n const componentNode = routePiecesByPath[node.routePath!]?.component\n\n return [\n `const ${node.variableName}Route = ${node.variableName}Import.update({\n ${[\n node.isNonPath\n ? `id: '${node.path}'`\n : `path: '${node.cleanedPath}'`,\n `getParentRoute: () => ${node.parent?.variableName ?? 'root'}Route`,\n ]\n .filter(Boolean)\n .join(',')}\n } as any)`,\n loaderNode\n ? `.updateLoader({ loader: lazyFn(() => import('./${sanitize(\n removeExt(\n path.relative(\n path.dirname(config.generatedRouteTree),\n path.resolve(config.routesDirectory, loaderNode.filePath),\n ),\n ),\n )}'), 'loader') })`\n : '',\n componentNode\n ? `.update({ component: lazyRouteComponent(() => import('./${sanitize(\n removeExt(\n path.relative(\n path.dirname(config.generatedRouteTree),\n path.resolve(\n config.routesDirectory,\n componentNode.filePath,\n ),\n ),\n ),\n )}'), 'component') })`\n : '',\n ].join('')\n })\n .join('\\n\\n'),\n `declare module '@tanstack/react-router' {\n interface FileRoutesByPath {\n ${routeNodes\n .map((routeNode) => {\n return `'${routeNode.routePath}': {\n preLoaderRoute: typeof ${routeNode.variableName}Import\n parentRoute: typeof ${\n routeNode.parent?.variableName\n ? `${routeNode.parent?.variableName}Import`\n : 'rootRoute'\n }\n }`\n })\n .join('\\n')}\n }\n}`,\n `export const routeTree = rootRoute.addChildren([${routeConfigChildrenText}])`,\n ].join('\\n')\n\n const routeConfigFileContent = await prettier.format(routeImports, {\n semi: false,\n singleQuote: config.quoteStyle === 'single',\n parser: 'typescript',\n })\n\n const routeTreeContent = await fs\n .readFile(path.resolve(config.generatedRouteTree), 'utf-8')\n .catch((err: any) => {\n if (err.code === 'ENOENT') {\n return undefined\n }\n throw err\n })\n\n if (!checkLatest()) return\n\n if (routeTreeContent !== routeConfigFileContent) {\n await fs.ensureDir(path.dirname(path.resolve(config.generatedRouteTree)))\n if (!checkLatest()) return\n await fs.writeFile(\n path.resolve(config.generatedRouteTree),\n routeConfigFileContent,\n )\n }\n\n console.log(\n `🌲 Processed ${routeNodes.length} routes in ${Date.now() - start}ms`,\n )\n}\n\nfunction fileToVariable(d: string): string {\n return (\n removeUnderscores(d)\n ?.replace(/\\$/g, '')\n ?.split(/[/-]/g)\n .map((d, i) => (i > 0 ? capitalize(d) : d))\n .join('')\n .replace(/([^a-zA-Z0-9]|[\\.])/gm, '') ?? ''\n )\n}\n\nexport function removeExt(d: string) {\n return d.substring(0, d.lastIndexOf('.')) || d\n}\n\nfunction spaces(d: number): string {\n return Array.from({ length: d })\n .map(() => ' ')\n .join('')\n}\n\nexport function multiSortBy<T>(\n arr: T[],\n accessors: ((item: T) => any)[] = [(d) => d],\n): T[] {\n return arr\n .map((d, i) => [d, i] as const)\n .sort(([a, ai], [b, bi]) => {\n for (const accessor of accessors) {\n const ao = accessor(a)\n const bo = accessor(b)\n\n if (typeof ao === 'undefined') {\n if (typeof bo === 'undefined') {\n continue\n }\n return 1\n }\n\n if (ao === bo) {\n continue\n }\n\n return ao > bo ? 1 : -1\n }\n\n return ai - bi\n })\n .map(([d]) => d)\n}\n\nfunction capitalize(s: string) {\n if (typeof s !== 'string') return ''\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\nfunction sanitize(s?: string) {\n return replaceBackslash(s?.replace(/\\\\index/gi, ''))\n}\n\nfunction removeUnderscores(s?: string) {\n return s?.replace(/(^_|_$)/, '').replace(/(\\/_|_\\/)/, '/')\n}\n\nfunction replaceBackslash(s?: string) {\n return s?.replace(/\\\\/gi, '/')\n}\n\nexport function hasParentRoute(\n routes: RouteNode[],\n routePathToCheck: string | undefined,\n): RouteNode | null {\n if (!routePathToCheck || routePathToCheck === '/') {\n return null\n }\n\n const sortedNodes = multiSortBy(routes, [\n (d) => d.routePath!.length * -1,\n (d) => d.variableName,\n ]).filter((d) => d.routePath !== `/${rootPathId}`)\n\n for (const route of sortedNodes) {\n if (route.routePath === '/') continue\n\n if (\n routePathToCheck.startsWith(`${route.routePath}/`) &&\n route.routePath !== routePathToCheck\n ) {\n return route\n }\n }\n const segments = routePathToCheck.split('/')\n segments.pop() // Remove the last segment\n const parentRoutePath = segments.join('/')\n\n return hasParentRoute(routes, parentRoutePath)\n}\n"],"names":["latestTask","rootPathId","fileRouteRegex","getRouteNodes","config","routeFilePrefix","routeFileIgnorePrefix","routeNodes","recurse","dir","fullDir","path","resolve","routesDirectory","dirList","fs","filter","d","startsWith","Promise","all","map","fileName","fullPath","join","relativePath","stat","isDirectory","filePath","filePathNoExt","removeExt","routePath","replaceBackslash","cleanPath","split","variableName","fileToVariable","endsWith","replace","push","first","skipMessage","generator","console","log","taskId","checkLatest","start","Date","now","routePathIdPrefix","preRouteNodes","sortRouteNodes","nodes","multiSortBy","length","match","routeTree","routePiecesByPath","handleNode","node","future","unstable_codeSplitting","isRoute","isComponent","isLoader","parentRoute","hasParentRoute","parent","trimmedPath","trimPathLeft","isNonPath","isNonLayout","cleanedPath","removeUnderscores","anchorRoute","find","isVirtual","children","forEach","buildRouteConfig","depth","routeCode","isRoot","escapedRoutePath","replaceAll","quote","quoteStyle","replaced","route","childConfigs","spaces","Boolean","routeConfigChildrenText","sortedRouteNodes","includes","imports","Object","entries","FileRoute","some","lazyFn","loader","lazyRouteComponent","component","routeImports","sanitize","relative","dirname","generatedRouteTree","loaderNode","componentNode","routeNode","routeConfigFileContent","prettier","semi","singleQuote","parser","routeTreeContent","catch","err","code","undefined","i","capitalize","substring","lastIndexOf","Array","from","arr","accessors","sort","a","ai","b","bi","accessor","ao","bo","s","charAt","toUpperCase","slice","routes","routePathToCheck","sortedNodes","segments","pop","parentRoutePath"],"mappings":";;;;;;;;;;;;;;;;;AAMA,IAAIA,UAAU,GAAG,CAAC,CAAA;AACX,MAAMC,UAAU,GAAG,SAAQ;AAC3B,MAAMC,cAAc,GAAG,8BAA6B;AAoB3D,eAAeC,aAAaA,CAACC,MAAc,EAAE;EAC3C,MAAM;IAAEC,eAAe;AAAEC,IAAAA,qBAAAA;AAAsB,GAAC,GAAGF,MAAM,CAAA;EAEzD,IAAIG,UAAuB,GAAG,EAAE,CAAA;EAEhC,eAAeC,OAAOA,CAACC,GAAW,EAAE;IAClC,MAAMC,OAAO,GAAGC,IAAI,CAACC,OAAO,CAACR,MAAM,CAACS,eAAe,EAAEJ,GAAG,CAAC,CAAA;IACzD,IAAIK,OAAO,GAAG,MAAMC,mBAAU,CAACL,OAAO,CAAC,CAAA;AAEvCI,IAAAA,OAAO,GAAGA,OAAO,CAACE,MAAM,CAAEC,CAAC,IAAK;AAC9B,MAAA,IACEA,CAAC,CAACC,UAAU,CAAC,GAAG,CAAC,IAChBZ,qBAAqB,IAAIW,CAAC,CAACC,UAAU,CAACZ,qBAAqB,CAAE,EAC9D;AACA,QAAA,OAAO,KAAK,CAAA;AACd,OAAA;AAEA,MAAA,IAAID,eAAe,EAAE;AACnB,QAAA,OAAOY,CAAC,CAACC,UAAU,CAACb,eAAe,CAAC,CAAA;AACtC,OAAA;AAEA,MAAA,OAAO,IAAI,CAAA;AACb,KAAC,CAAC,CAAA;IAEF,MAAMc,OAAO,CAACC,GAAG,CACfN,OAAO,CAACO,GAAG,CAAC,MAAOC,QAAQ,IAAK;MAC9B,MAAMC,QAAQ,GAAGZ,IAAI,CAACa,IAAI,CAACd,OAAO,EAAEY,QAAQ,CAAC,CAAA;MAC7C,MAAMG,YAAY,GAAGd,IAAI,CAACa,IAAI,CAACf,GAAG,EAAEa,QAAQ,CAAC,CAAA;MAC7C,MAAMI,IAAI,GAAG,MAAMX,gBAAO,CAACQ,QAAQ,CAAC,CAAA;AAEpC,MAAA,IAAIG,IAAI,CAACC,WAAW,EAAE,EAAE;QACtB,MAAMnB,OAAO,CAACiB,YAAY,CAAC,CAAA;AAC7B,OAAC,MAAM;QACL,MAAMG,QAAQ,GAAGjB,IAAI,CAACa,IAAI,CAACf,GAAG,EAAEa,QAAQ,CAAC,CAAA;AACzC,QAAA,MAAMO,aAAa,GAAGC,SAAS,CAACF,QAAQ,CAAC,CAAA;QACzC,IAAIG,SAAS,GACXC,gBAAgB,CACdC,qBAAS,CAAE,CAAA,CAAA,EAAGJ,aAAa,CAACK,KAAK,CAAC,GAAG,CAAC,CAACV,IAAI,CAAC,GAAG,CAAE,CAAC,CAAA,CACpD,CAAC,IAAI,EAAE,CAAA;AACT,QAAA,MAAMW,YAAY,GAAGC,cAAc,CAACL,SAAS,CAAC,CAAA;;AAE9C;AACA;QACA,IAAIA,SAAS,KAAK,OAAO,EAAE;AACzBA,UAAAA,SAAS,GAAG,GAAG,CAAA;SAChB,MAAM,IAAIA,SAAS,CAACM,QAAQ,CAAC,QAAQ,CAAC,EAAE;UACvCN,SAAS,GAAGA,SAAS,CAACO,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;AAChD,SAAA;QAEA/B,UAAU,CAACgC,IAAI,CAAC;UACdX,QAAQ;UACRL,QAAQ;UACRQ,SAAS;AACTI,UAAAA,YAAAA;AACF,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAC,CACH,CAAC,CAAA;AAED,IAAA,OAAO5B,UAAU,CAAA;AACnB,GAAA;EAEA,MAAMC,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnB,EAAA,OAAOD,UAAU,CAAA;AACnB,CAAA;AAEA,IAAIiC,KAAK,GAAG,KAAK,CAAA;AACjB,IAAIC,WAAW,GAAG,KAAK,CAAA;AAOhB,eAAeC,SAASA,CAACtC,MAAc,EAAE;EAC9CuC,OAAO,CAACC,GAAG,EAAE,CAAA;EAEb,IAAI,CAACJ,KAAK,EAAE;AACVG,IAAAA,OAAO,CAACC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACtCJ,IAAAA,KAAK,GAAG,IAAI,CAAA;GACb,MAAM,IAAIC,WAAW,EAAE;AACtBA,IAAAA,WAAW,GAAG,KAAK,CAAA;AACrB,GAAC,MAAM;AACLE,IAAAA,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAC3C,GAAA;AAEA,EAAA,MAAMC,MAAM,GAAG7C,UAAU,GAAG,CAAC,CAAA;AAC7BA,EAAAA,UAAU,GAAG6C,MAAM,CAAA;EAEnB,MAAMC,WAAW,GAAGA,MAAM;IACxB,IAAI9C,UAAU,KAAK6C,MAAM,EAAE;AACzBJ,MAAAA,WAAW,GAAG,IAAI,CAAA;AAClB,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AAEA,IAAA,OAAO,IAAI,CAAA;GACZ,CAAA;AAED,EAAA,MAAMM,KAAK,GAAGC,IAAI,CAACC,GAAG,EAAE,CAAA;AACxB,EAAA,MAAMC,iBAAiB,GAAG9C,MAAM,CAACC,eAAe,IAAI,EAAE,CAAA;AAEtD,EAAA,IAAI8C,aAAa,GAAG,MAAMhD,aAAa,CAACC,MAAM,CAAC,CAAA;EAE/C,MAAMgD,cAAc,GAAIC,KAAkB,IAAkB;IAC1D,OAAOC,WAAW,CAACD,KAAK,EAAE,CACvBpC,CAAC,IAAMA,CAAC,CAACc,SAAS,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,CAAE,EACpCd,CAAC,IAAKA,CAAC,CAACc,SAAS,EAAEG,KAAK,CAAC,GAAG,CAAC,CAACqB,MAAM,EACpCtC,CAAC,IAAMA,CAAC,CAACW,QAAQ,EAAE4B,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAClDvC,CAAC,IAAMA,CAAC,CAACW,QAAQ,EAAE4B,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAE,EAClDvC,CAAC,IAAMA,CAAC,CAACc,SAAS,EAAEM,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAE,EAC3CpB,CAAC,IAAKA,CAAC,CAACc,SAAS,CACnB,CAAC,CAACf,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACc,SAAS,KAAM,IAAGmB,iBAAiB,GAAGjD,UAAW,CAAA,CAAC,CAAC,CAAA;GACvE,CAAA;AAEDkD,EAAAA,aAAa,GAAGC,cAAc,CAACD,aAAa,CAAC,CAAA;EAE7C,MAAMM,SAAsB,GAAG,EAAE,CAAA;EACjC,MAAMC,iBAA+C,GAAG,EAAE,CAAA;;AAE1D;AACA;EACA,IAAInD,UAAuB,GAAG,EAAE,CAAA;EAEhC,MAAMoD,UAAU,GAAIC,IAAe,IAAK;AACtC,IAAA,IAAIxD,MAAM,CAACyD,MAAM,EAAEC,sBAAsB,EAAE;MACzCF,IAAI,CAACG,OAAO,GAAGH,IAAI,CAAC7B,SAAS,EAAEM,QAAQ,CAAC,QAAQ,CAAC,CAAA;MACjDuB,IAAI,CAACI,WAAW,GAAGJ,IAAI,CAAC7B,SAAS,EAAEM,QAAQ,CAAC,YAAY,CAAC,CAAA;MACzDuB,IAAI,CAACK,QAAQ,GAAGL,IAAI,CAAC7B,SAAS,EAAEM,QAAQ,CAAC,SAAS,CAAC,CAAA;MAEnD,IAAIuB,IAAI,CAACI,WAAW,IAAIJ,IAAI,CAACK,QAAQ,IAAIL,IAAI,CAACG,OAAO,EAAE;AACrDH,QAAAA,IAAI,CAAC7B,SAAS,GAAG6B,IAAI,CAAC7B,SAAS,EAAEO,OAAO,CACtC,6BAA6B,EAC7B,EACF,CAAC,CAAA;AACH,OAAA;AACF,KAAA;IAEA,MAAM4B,WAAW,GAAGC,cAAc,CAAC5D,UAAU,EAAEqD,IAAI,CAAC7B,SAAS,CAAC,CAAA;AAC9D,IAAA,IAAImC,WAAW,EAAEN,IAAI,CAACQ,MAAM,GAAGF,WAAW,CAAA;IAE1CN,IAAI,CAACjD,IAAI,GAAGiD,IAAI,CAACQ,MAAM,GACnBR,IAAI,CAAC7B,SAAS,EAAEO,OAAO,CAACsB,IAAI,CAACQ,MAAM,CAACrC,SAAS,EAAG,EAAE,CAAC,IAAI,GAAG,GAC1D6B,IAAI,CAAC7B,SAAS,CAAA;IAElB,MAAMsC,WAAW,GAAGC,wBAAY,CAACV,IAAI,CAACjD,IAAI,IAAI,EAAE,CAAC,CAAA;IAEjD,MAAMuB,KAAK,GAAGmC,WAAW,EAAEnC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IAC3C,IAAIM,KAAK,GAAGN,KAAK,CAAC,CAAC,CAAC,IAAImC,WAAW,IAAI,EAAE,CAAA;IAEzCT,IAAI,CAACW,SAAS,GAAG/B,KAAK,CAACtB,UAAU,CAAC,GAAG,CAAC,CAAA;IACtC0C,IAAI,CAACY,WAAW,GAAGhC,KAAK,CAACH,QAAQ,CAAC,GAAG,CAAC,CAAA;IAEtCuB,IAAI,CAACa,WAAW,GAAGC,iBAAiB,CAACd,IAAI,CAACjD,IAAI,CAAC,IAAI,EAAE,CAAA;AAErD,IAAA,IAAIP,MAAM,CAACyD,MAAM,EAAEC,sBAAsB,EAAE;AACzC,MAAA,IAAIF,IAAI,CAACK,QAAQ,IAAIL,IAAI,CAACI,WAAW,EAAE;AACrCN,QAAAA,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,GAChC2B,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,IAAI,EAAE,CAAA;AAE1C2B,QAAAA,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,CAChC6B,IAAI,CAACK,QAAQ,GAAG,QAAQ,GAAG,WAAW,CACvC,GAAGL,IAAI,CAAA;AAER,QAAA,MAAMe,WAAW,GAAGpE,UAAU,CAACqE,IAAI,CAChC3D,CAAC,IAAKA,CAAC,CAACc,SAAS,KAAK6B,IAAI,CAAC7B,SAC9B,CAAC,CAAA;QACD,IAAI,CAAC4C,WAAW,EAAE;AAChBhB,UAAAA,UAAU,CAAC;AACT,YAAA,GAAGC,IAAI;AACPiB,YAAAA,SAAS,EAAE,IAAA;AACb,WAAC,CAAC,CAAA;AACJ,SAAA;AACA;AACA;;AAEA;AACA;AACA,QAAA,OAAA;AACF,OAAA;AACF,KAAA;IAEA,IAAIjB,IAAI,CAACQ,MAAM,EAAE;MACfR,IAAI,CAACQ,MAAM,CAACU,QAAQ,GAAGlB,IAAI,CAACQ,MAAM,CAACU,QAAQ,IAAI,EAAE,CAAA;MACjDlB,IAAI,CAACQ,MAAM,CAACU,QAAQ,CAACvC,IAAI,CAACqB,IAAI,CAAC,CAAA;AACjC,KAAC,MAAM;AACLH,MAAAA,SAAS,CAAClB,IAAI,CAACqB,IAAI,CAAC,CAAA;AACtB,KAAA;AAEArD,IAAAA,UAAU,CAACgC,IAAI,CAACqB,IAAI,CAAC,CAAA;GACtB,CAAA;EAEDT,aAAa,CAAC4B,OAAO,CAAEnB,IAAI,IAAKD,UAAU,CAACC,IAAI,CAAC,CAAC,CAAA;AAEjD,EAAA,eAAeoB,gBAAgBA,CAC7B3B,KAAkB,EAClB4B,KAAK,GAAG,CAAC,EACQ;IACjB,MAAMH,QAAQ,GAAGzB,KAAK,CAAChC,GAAG,CAAC,MAAOuC,IAAI,IAAK;AACzC,MAAA,MAAMsB,SAAS,GAAG,MAAMnE,oBAAW,CAAC6C,IAAI,CAACrC,QAAQ,EAAE,OAAO,CAAC,CAAA;;AAE3D;MACA,IAAIqC,IAAI,CAACuB,MAAM,EAAE;AACf,QAAA,OAAA;AACF,OAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAA,MAAMC,gBAAgB,GAAGxB,IAAI,CAAC7B,SAAS,EAAEsD,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;MACtE,MAAMC,KAAK,GAAGlF,MAAM,CAACmF,UAAU,KAAK,QAAQ,GAAI,CAAE,CAAA,CAAA,GAAI,CAAE,CAAA,CAAA,CAAA;AACxD,MAAA,MAAMC,QAAQ,GAAGN,SAAS,CAAC5C,OAAO,CAChCpC,cAAc,EACb,CAAA,cAAA,EAAgBoF,KAAM,CAAEF,EAAAA,gBAAiB,CAAEE,EAAAA,KAAM,GACpD,CAAC,CAAA;MAED,IAAIE,QAAQ,KAAKN,SAAS,EAAE;QAC1B,MAAMnE,qBAAY,CAAC6C,IAAI,CAACrC,QAAQ,EAAEiE,QAAQ,CAAC,CAAA;AAC7C,OAAA;AAEA,MAAA,MAAMC,KAAK,GAAI,CAAA,EAAE7B,IAAI,CAACzB,YAAa,CAAM,KAAA,CAAA,CAAA;AAEzC,MAAA,IAAIyB,IAAI,CAACkB,QAAQ,EAAEvB,MAAM,EAAE;AACzB,QAAA,MAAMmC,YAAY,GAAG,MAAMV,gBAAgB,CAACpB,IAAI,CAACkB,QAAQ,EAAEG,KAAK,GAAG,CAAC,CAAC,CAAA;QACrE,OAAQ,CAAA,EAAEQ,KAAM,CAAA,cAAA,EAAgBE,MAAM,CAACV,KAAK,GAAG,CAAC,CAAE,CAAES,EAAAA,YAAa,CAAG,EAAA,CAAA,CAAA;AACtE,OAAA;AAEA,MAAA,OAAOD,KAAK,CAAA;AACd,KAAC,CAAC,CAAA;AAEF,IAAA,OAAO,CAAC,MAAMtE,OAAO,CAACC,GAAG,CAAC0D,QAAQ,CAAC,EAAE9D,MAAM,CAAC4E,OAAO,CAAC,CAACpE,IAAI,CAAE,GAAE,CAAC,CAAA;AAChE,GAAA;AAEA,EAAA,MAAMqE,uBAAuB,GAAG,MAAMb,gBAAgB,CAACvB,SAAS,CAAC,CAAA;AAEjE,EAAA,MAAMqC,gBAAgB,GAAGxC,WAAW,CAAC/C,UAAU,EAAE,CAC9CU,CAAC,IACAA,CAAC,CAACc,SAAS,EAAEgE,QAAQ,CAAE,CAAA,CAAA,EAAG7C,iBAAiB,GAAGjD,UAAW,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EACrEgB,CAAC,IAAKA,CAAC,CAACc,SAAS,EAAEG,KAAK,CAAC,GAAG,CAAC,CAACqB,MAAM,EACpCtC,CAAC,IAAMA,CAAC,CAACc,SAAS,EAAEM,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAE,EAChDpB,CAAC,IAAKA,CAAC,CACT,CAAC,CAAA;AAEF,EAAA,MAAM+E,OAAO,GAAGC,MAAM,CAACC,OAAO,CAAC;IAC7BC,SAAS,EAAEL,gBAAgB,CAACM,IAAI,CAAEnF,CAAC,IAAKA,CAAC,CAAC4D,SAAS,CAAC;AACpDwB,IAAAA,MAAM,EAAEP,gBAAgB,CAACM,IAAI,CAC1BxC,IAAI,IAAKF,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,EAAEuE,MAChD,CAAC;AACDC,IAAAA,kBAAkB,EAAET,gBAAgB,CAACM,IAAI,CACtCxC,IAAI,IAAKF,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,EAAEyE,SAChD,CAAA;GACD,CAAC,CACCxF,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACnBI,GAAG,CAAEJ,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEnB,EAAA,MAAMwF,YAAY,GAAG,CACnBT,OAAO,CAACzC,MAAM,GACT,CAAA,SAAA,EAAWyC,OAAO,CAACxE,IAAI,CAAC,IAAI,CAAE,CAAA,kCAAA,CAAmC,GAClE,EAAE,EACL,CAAA,sCAAA,EAAwCkF,QAAQ,CAC/C/F,IAAI,CAACgG,QAAQ,CACXhG,IAAI,CAACiG,OAAO,CAACxG,MAAM,CAACyG,kBAAkB,CAAC,EACvClG,IAAI,CAACC,OAAO,CAACR,MAAM,CAACS,eAAe,EAAEqC,iBAAiB,GAAGjD,UAAU,CACrE,CACF,CAAE,CAAE,CAAA,CAAA,EACJ,GAAG6F,gBAAgB,CAChB9E,MAAM,CAAEC,CAAC,IAAK,CAACA,CAAC,CAAC4D,SAAS,CAAC,CAC3BxD,GAAG,CAAEuC,IAAI,IAAK;AACb,IAAA,OAAQ,qBACNA,IAAI,CAACzB,YACN,CAAA,iBAAA,EAAmBuE,QAAQ,CAC1B5E,SAAS,CACPnB,IAAI,CAACgG,QAAQ,CACXhG,IAAI,CAACiG,OAAO,CAACxG,MAAM,CAACyG,kBAAkB,CAAC,EACvClG,IAAI,CAACC,OAAO,CAACR,MAAM,CAACS,eAAe,EAAE+C,IAAI,CAAChC,QAAQ,CACpD,CACF,CACF,CAAE,CAAE,CAAA,CAAA,CAAA;AACN,GAAC,CAAC,EACJ,IAAI,EACJkE,gBAAgB,CACb9E,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAAC4D,SAAS,CAAC,CAC1BxD,GAAG,CAAEuC,IAAI,IAAK;IACb,OAAQ,CAAA,MAAA,EAAQA,IAAI,CAACzB,YAAa,2BAA0ByB,IAAI,CAAC7B,SAAU,CAAiB,gBAAA,CAAA,CAAA;AAC9F,GAAC,CAAC,CACDP,IAAI,CAAC,IAAI,CAAC,EACb,IAAI,EACJsE,gBAAgB,CACbzE,GAAG,CAAEuC,IAAI,IAAK;IACb,MAAMkD,UAAU,GAAGpD,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,EAAEuE,MAAM,CAAA;IAC7D,MAAMS,aAAa,GAAGrD,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,EAAEyE,SAAS,CAAA;IAEnE,OAAO,CACJ,SAAQ5C,IAAI,CAACzB,YAAa,CAAUyB,QAAAA,EAAAA,IAAI,CAACzB,YAAa,CAAA;AACjE,UAAA,EAAY,CACAyB,IAAI,CAACW,SAAS,GACT,QAAOX,IAAI,CAACjD,IAAK,CAAA,CAAA,CAAE,GACnB,CAASiD,OAAAA,EAAAA,IAAI,CAACa,WAAY,GAAE,EAChC,CAAA,sBAAA,EAAwBb,IAAI,CAACQ,MAAM,EAAEjC,YAAY,IAAI,MAAO,OAAM,CACpE,CACEnB,MAAM,CAAC4E,OAAO,CAAC,CACfpE,IAAI,CAAC,GAAG,CAAE,CAAA;AACvB,iBAAA,CAAkB,EACRsF,UAAU,GACL,CAAiDJ,+CAAAA,EAAAA,QAAQ,CACxD5E,SAAS,CACPnB,IAAI,CAACgG,QAAQ,CACXhG,IAAI,CAACiG,OAAO,CAACxG,MAAM,CAACyG,kBAAkB,CAAC,EACvClG,IAAI,CAACC,OAAO,CAACR,MAAM,CAACS,eAAe,EAAEiG,UAAU,CAAClF,QAAQ,CAC1D,CACF,CACF,CAAE,CAAiB,gBAAA,CAAA,GACnB,EAAE,EACNmF,aAAa,GACR,CAAA,wDAAA,EAA0DL,QAAQ,CACjE5E,SAAS,CACPnB,IAAI,CAACgG,QAAQ,CACXhG,IAAI,CAACiG,OAAO,CAACxG,MAAM,CAACyG,kBAAkB,CAAC,EACvClG,IAAI,CAACC,OAAO,CACVR,MAAM,CAACS,eAAe,EACtBkG,aAAa,CAACnF,QAChB,CACF,CACF,CACF,CAAE,CAAA,mBAAA,CAAoB,GACtB,EAAE,CACP,CAACJ,IAAI,CAAC,EAAE,CAAC,CAAA;AACZ,GAAC,CAAC,CACDA,IAAI,CAAC,MAAM,CAAC,EACd,CAAA;AACL;AACA,IAAA,EAAMjB,UAAU,CACTc,GAAG,CAAE2F,SAAS,IAAK;IAClB,OAAQ,CAAA,CAAA,EAAGA,SAAS,CAACjF,SAAU,CAAA;AACvC,iCAAmCiF,EAAAA,SAAS,CAAC7E,YAAa,CAAA;AAC1D,8BAAA,EACY6E,SAAS,CAAC5C,MAAM,EAAEjC,YAAY,GACzB,CAAA,EAAE6E,SAAS,CAAC5C,MAAM,EAAEjC,YAAa,CAAA,MAAA,CAAO,GACzC,WACL,CAAA;AACX,SAAU,CAAA,CAAA;AACJ,GAAC,CAAC,CACDX,IAAI,CAAC,IAAI,CAAE,CAAA;AAClB;AACA,CAAE,CAAA,EACG,mDAAkDqE,uBAAwB,CAAA,EAAA,CAAG,CAC/E,CAACrE,IAAI,CAAC,IAAI,CAAC,CAAA;EAEZ,MAAMyF,sBAAsB,GAAG,MAAMC,YAAe,CAACT,YAAY,EAAE;AACjEU,IAAAA,IAAI,EAAE,KAAK;AACXC,IAAAA,WAAW,EAAEhH,MAAM,CAACmF,UAAU,KAAK,QAAQ;AAC3C8B,IAAAA,MAAM,EAAE,YAAA;AACV,GAAC,CAAC,CAAA;EAEF,MAAMC,gBAAgB,GAAG,MAAMvG,oBACpB,CAACJ,IAAI,CAACC,OAAO,CAACR,MAAM,CAACyG,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAC1DU,KAAK,CAAEC,GAAQ,IAAK;AACnB,IAAA,IAAIA,GAAG,CAACC,IAAI,KAAK,QAAQ,EAAE;AACzB,MAAA,OAAOC,SAAS,CAAA;AAClB,KAAA;AACA,IAAA,MAAMF,GAAG,CAAA;AACX,GAAC,CAAC,CAAA;AAEJ,EAAA,IAAI,CAAC1E,WAAW,EAAE,EAAE,OAAA;EAEpB,IAAIwE,gBAAgB,KAAKL,sBAAsB,EAAE;AAC/C,IAAA,MAAMlG,qBAAY,CAACJ,IAAI,CAACiG,OAAO,CAACjG,IAAI,CAACC,OAAO,CAACR,MAAM,CAACyG,kBAAkB,CAAC,CAAC,CAAC,CAAA;AACzE,IAAA,IAAI,CAAC/D,WAAW,EAAE,EAAE,OAAA;AACpB,IAAA,MAAM/B,qBAAY,CAChBJ,IAAI,CAACC,OAAO,CAACR,MAAM,CAACyG,kBAAkB,CAAC,EACvCI,sBACF,CAAC,CAAA;AACH,GAAA;AAEAtE,EAAAA,OAAO,CAACC,GAAG,CACR,CAAerC,aAAAA,EAAAA,UAAU,CAACgD,MAAO,CAAA,WAAA,EAAaP,IAAI,CAACC,GAAG,EAAE,GAAGF,KAAM,IACpE,CAAC,CAAA;AACH,CAAA;AAEA,SAASX,cAAcA,CAACnB,CAAS,EAAU;EACzC,OACEyD,iBAAiB,CAACzD,CAAC,CAAC,EAChBqB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAClBJ,KAAK,CAAC,OAAO,CAAC,CACfb,GAAG,CAAC,CAACJ,CAAC,EAAE0G,CAAC,KAAMA,CAAC,GAAG,CAAC,GAAGC,UAAU,CAAC3G,CAAC,CAAC,GAAGA,CAAE,CAAC,CAC1CO,IAAI,CAAC,EAAE,CAAC,CACRc,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;AAEjD,CAAA;AAEO,SAASR,SAASA,CAACb,CAAS,EAAE;AACnC,EAAA,OAAOA,CAAC,CAAC4G,SAAS,CAAC,CAAC,EAAE5G,CAAC,CAAC6G,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI7G,CAAC,CAAA;AAChD,CAAA;AAEA,SAAS0E,MAAMA,CAAC1E,CAAS,EAAU;EACjC,OAAO8G,KAAK,CAACC,IAAI,CAAC;AAAEzE,IAAAA,MAAM,EAAEtC,CAAAA;GAAG,CAAC,CAC7BI,GAAG,CAAC,MAAM,GAAG,CAAC,CACdG,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAA;AAEO,SAAS8B,WAAWA,CACzB2E,GAAQ,EACRC,SAA+B,GAAG,CAAEjH,CAAC,IAAKA,CAAC,CAAC,EACvC;AACL,EAAA,OAAOgH,GAAG,CACP5G,GAAG,CAAC,CAACJ,CAAC,EAAE0G,CAAC,KAAK,CAAC1G,CAAC,EAAE0G,CAAC,CAAU,CAAC,CAC9BQ,IAAI,CAAC,CAAC,CAACC,CAAC,EAAEC,EAAE,CAAC,EAAE,CAACC,CAAC,EAAEC,EAAE,CAAC,KAAK;AAC1B,IAAA,KAAK,MAAMC,QAAQ,IAAIN,SAAS,EAAE;AAChC,MAAA,MAAMO,EAAE,GAAGD,QAAQ,CAACJ,CAAC,CAAC,CAAA;AACtB,MAAA,MAAMM,EAAE,GAAGF,QAAQ,CAACF,CAAC,CAAC,CAAA;AAEtB,MAAA,IAAI,OAAOG,EAAE,KAAK,WAAW,EAAE;AAC7B,QAAA,IAAI,OAAOC,EAAE,KAAK,WAAW,EAAE;AAC7B,UAAA,SAAA;AACF,SAAA;AACA,QAAA,OAAO,CAAC,CAAA;AACV,OAAA;MAEA,IAAID,EAAE,KAAKC,EAAE,EAAE;AACb,QAAA,SAAA;AACF,OAAA;AAEA,MAAA,OAAOD,EAAE,GAAGC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACzB,KAAA;IAEA,OAAOL,EAAE,GAAGE,EAAE,CAAA;GACf,CAAC,CACDlH,GAAG,CAAC,CAAC,CAACJ,CAAC,CAAC,KAAKA,CAAC,CAAC,CAAA;AACpB,CAAA;AAEA,SAAS2G,UAAUA,CAACe,CAAS,EAAE;AAC7B,EAAA,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE,OAAO,EAAE,CAAA;AACpC,EAAA,OAAOA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,CAAC,CAACG,KAAK,CAAC,CAAC,CAAC,CAAA;AAC/C,CAAA;AAEA,SAASpC,QAAQA,CAACiC,CAAU,EAAE;EAC5B,OAAO3G,gBAAgB,CAAC2G,CAAC,EAAErG,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;AACtD,CAAA;AAEA,SAASoC,iBAAiBA,CAACiE,CAAU,EAAE;AACrC,EAAA,OAAOA,CAAC,EAAErG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;AAC5D,CAAA;AAEA,SAASN,gBAAgBA,CAAC2G,CAAU,EAAE;AACpC,EAAA,OAAOA,CAAC,EAAErG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAChC,CAAA;AAEO,SAAS6B,cAAcA,CAC5B4E,MAAmB,EACnBC,gBAAoC,EAClB;AAClB,EAAA,IAAI,CAACA,gBAAgB,IAAIA,gBAAgB,KAAK,GAAG,EAAE;AACjD,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,MAAMC,WAAW,GAAG3F,WAAW,CAACyF,MAAM,EAAE,CACrC9H,CAAC,IAAKA,CAAC,CAACc,SAAS,CAAEwB,MAAM,GAAG,CAAC,CAAC,EAC9BtC,CAAC,IAAKA,CAAC,CAACkB,YAAY,CACtB,CAAC,CAACnB,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACc,SAAS,KAAM,CAAG9B,CAAAA,EAAAA,UAAW,EAAC,CAAC,CAAA;AAElD,EAAA,KAAK,MAAMwF,KAAK,IAAIwD,WAAW,EAAE;AAC/B,IAAA,IAAIxD,KAAK,CAAC1D,SAAS,KAAK,GAAG,EAAE,SAAA;AAE7B,IAAA,IACEiH,gBAAgB,CAAC9H,UAAU,CAAE,CAAA,EAAEuE,KAAK,CAAC1D,SAAU,CAAE,CAAA,CAAA,CAAC,IAClD0D,KAAK,CAAC1D,SAAS,KAAKiH,gBAAgB,EACpC;AACA,MAAA,OAAOvD,KAAK,CAAA;AACd,KAAA;AACF,GAAA;AACA,EAAA,MAAMyD,QAAQ,GAAGF,gBAAgB,CAAC9G,KAAK,CAAC,GAAG,CAAC,CAAA;AAC5CgH,EAAAA,QAAQ,CAACC,GAAG,EAAE,CAAC;AACf,EAAA,MAAMC,eAAe,GAAGF,QAAQ,CAAC1H,IAAI,CAAC,GAAG,CAAC,CAAA;AAE1C,EAAA,OAAO2C,cAAc,CAAC4E,MAAM,EAAEK,eAAe,CAAC,CAAA;AAChD;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"generator.js","sources":["../../../../../../router-cli/src/generator.ts"],"sourcesContent":["import path from 'path'\nimport * as fs from 'fs/promises'\nimport * as prettier from 'prettier'\nimport { Config } from './config'\nimport { cleanPath, trimPathLeft } from '@tanstack/react-router'\n\nlet latestTask = 0\nexport const rootPathId = '__root'\nexport const fileRouteRegex = /new\\s+FileRoute\\(([^)]*)\\)/g\n\nexport type RouteNode = {\n filePath: string\n fullPath: string\n variableName: string\n routePath?: string\n cleanedPath?: string\n path?: string\n isNonPath?: boolean\n isNonLayout?: boolean\n isRoute?: boolean\n isLoader?: boolean\n isComponent?: boolean\n isVirtual?: boolean\n isRoot?: boolean\n children?: RouteNode[]\n parent?: RouteNode\n}\n\nasync function getRouteNodes(config: Config) {\n const { routeFilePrefix, routeFileIgnorePrefix } = config\n\n let routeNodes: RouteNode[] = []\n\n async function recurse(dir: string) {\n const fullDir = path.resolve(config.routesDirectory, dir)\n let dirList = await fs.readdir(fullDir)\n\n dirList = dirList.filter((d) => {\n if (\n d.startsWith('.') ||\n (routeFileIgnorePrefix && d.startsWith(routeFileIgnorePrefix))\n ) {\n return false\n }\n\n if (routeFilePrefix) {\n return d.startsWith(routeFilePrefix)\n }\n\n return true\n })\n\n await Promise.all(\n dirList.map(async (fileName) => {\n const fullPath = path.join(fullDir, fileName)\n const relativePath = path.join(dir, fileName)\n const stat = await fs.stat(fullPath)\n\n if (stat.isDirectory()) {\n await recurse(relativePath)\n } else {\n const filePath = path.join(dir, fileName)\n const filePathNoExt = removeExt(filePath)\n let routePath =\n replaceBackslash(\n cleanPath(`/${filePathNoExt.split('.').join('/')}`),\n ) ?? ''\n const variableName = fileToVariable(routePath)\n\n // Remove the index from the route path and\n // if the route path is empty, use `/'\n if (routePath === 'index') {\n routePath = '/'\n } else if (routePath.endsWith('/index')) {\n routePath = routePath.replace(/\\/index$/, '/')\n }\n\n routeNodes.push({\n filePath,\n fullPath,\n routePath,\n variableName,\n })\n }\n }),\n )\n\n return routeNodes\n }\n\n await recurse('./')\n\n return routeNodes\n}\n\nlet first = false\nlet skipMessage = false\n\ntype RouteSubNode = {\n component?: RouteNode\n loader?: RouteNode\n}\n\nexport async function generator(config: Config) {\n console.log()\n\n if (!first) {\n console.log('🔄 Generating routes...')\n first = true\n } else if (skipMessage) {\n skipMessage = false\n } else {\n console.log('♻️ Regenerating routes...')\n }\n\n const taskId = latestTask + 1\n latestTask = taskId\n\n const checkLatest = () => {\n if (latestTask !== taskId) {\n skipMessage = true\n return false\n }\n\n return true\n }\n\n const start = Date.now()\n const routePathIdPrefix = config.routeFilePrefix ?? ''\n\n let preRouteNodes = await getRouteNodes(config)\n\n const sortRouteNodes = (nodes: RouteNode[]): RouteNode[] => {\n return multiSortBy(nodes, [\n (d) => (d.routePath === '/' ? -1 : 1),\n (d) => d.routePath?.split('/').length,\n (d) => (d.filePath?.match(/[./]index[.]/) ? 1 : -1),\n (d) => (d.filePath?.match(/[./]route[.]/) ? -1 : 1),\n (d) => (d.routePath?.endsWith('/') ? -1 : 1),\n (d) => d.routePath,\n ]).filter((d) => d.routePath !== `/${routePathIdPrefix + rootPathId}`)\n }\n\n preRouteNodes = sortRouteNodes(preRouteNodes)\n\n const routeTree: RouteNode[] = []\n const routePiecesByPath: Record<string, RouteSubNode> = {}\n\n // Loop over the flat list of routeNodes and\n // build up a tree based on the routeNodes' routePath\n let routeNodes: RouteNode[] = []\n\n const handleNode = (node: RouteNode) => {\n if (config.future?.unstable_codeSplitting) {\n node.isRoute = node.routePath?.endsWith('/route')\n node.isComponent = node.routePath?.endsWith('/component')\n node.isLoader = node.routePath?.endsWith('/loader')\n\n if (node.isComponent || node.isLoader || node.isRoute) {\n node.routePath = node.routePath?.replace(\n /\\/(component|loader|route)$/,\n '',\n )\n }\n }\n\n const parentRoute = hasParentRoute(routeNodes, node.routePath)\n if (parentRoute) node.parent = parentRoute\n\n node.path = node.parent\n ? node.routePath?.replace(node.parent.routePath!, '') || '/'\n : node.routePath\n\n const trimmedPath = trimPathLeft(node.path ?? '')\n\n const split = trimmedPath?.split('/') ?? []\n let first = split[0] ?? trimmedPath ?? ''\n\n node.isNonPath = first.startsWith('_')\n node.isNonLayout = first.endsWith('_')\n\n node.cleanedPath = removeUnderscores(node.path) ?? ''\n\n if (config.future?.unstable_codeSplitting) {\n if (node.isLoader || node.isComponent) {\n routePiecesByPath[node.routePath!] =\n routePiecesByPath[node.routePath!] || {}\n\n routePiecesByPath[node.routePath!]![\n node.isLoader ? 'loader' : 'component'\n ] = node\n\n const anchorRoute = routeNodes.find(\n (d) => d.routePath === node.routePath,\n )\n if (!anchorRoute) {\n handleNode({\n ...node,\n isVirtual: true,\n })\n }\n // if (!node.parent) {\n // }\n\n // componentOrLoader.isVirtual = true\n // handleNode(componentOrLoader)\n return\n }\n }\n\n if (node.parent) {\n node.parent.children = node.parent.children ?? []\n node.parent.children.push(node)\n } else {\n routeTree.push(node)\n }\n\n routeNodes.push(node)\n }\n\n preRouteNodes.forEach((node) => handleNode(node))\n\n async function buildRouteConfig(\n nodes: RouteNode[],\n depth = 1,\n ): Promise<string> {\n const children = nodes.map(async (node) => {\n const routeCode = await fs.readFile(node.fullPath, 'utf-8')\n\n // Ensure the boilerplate for the route exists\n if (node.isRoot) {\n return\n }\n\n // Ensure that new FileRoute(anything?) is replaced with FileRoute(${node.routePath})\n // routePath can contain $ characters, which have special meaning when used in replace\n // so we have to escape it by turning all $ into $$. But since we do it through a replace call\n // we have to double escape it into $$$$. For more information, see\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_the_replacement\n const escapedRoutePath = node.routePath?.replaceAll('$', '$$$$') ?? ''\n const quote = config.quoteStyle === 'single' ? `'` : `\"`\n const replaced = routeCode.replace(\n fileRouteRegex,\n `new FileRoute(${quote}${escapedRoutePath}${quote})`,\n )\n\n if (replaced !== routeCode) {\n await fs.writeFile(node.fullPath, replaced)\n }\n\n const route = `${node.variableName}Route`\n\n if (node.children?.length) {\n const childConfigs = await buildRouteConfig(node.children, depth + 1)\n return `${route}.addChildren([${spaces(depth * 4)}${childConfigs}])`\n }\n\n return route\n })\n\n return (await Promise.all(children)).filter(Boolean).join(`,`)\n }\n\n const routeConfigChildrenText = await buildRouteConfig(routeTree)\n\n const sortedRouteNodes = multiSortBy(routeNodes, [\n (d) =>\n d.routePath?.includes(`/${routePathIdPrefix + rootPathId}`) ? -1 : 1,\n (d) => d.routePath?.split('/').length,\n (d) => (d.routePath?.endsWith(\"index'\") ? -1 : 1),\n (d) => d,\n ])\n\n const imports = Object.entries({\n FileRoute: sortedRouteNodes.some((d) => d.isVirtual),\n lazyFn: sortedRouteNodes.some(\n (node) => routePiecesByPath[node.routePath!]?.loader,\n ),\n lazyRouteComponent: sortedRouteNodes.some(\n (node) => routePiecesByPath[node.routePath!]?.component,\n ),\n })\n .filter((d) => d[1])\n .map((d) => d[0])\n\n const routeImports = [\n imports.length\n ? `import { ${imports.join(', ')} } from '@tanstack/react-router'\\n`\n : '',\n `import { Route as rootRoute } from './${sanitize(\n path.relative(\n path.dirname(config.generatedRouteTree),\n path.resolve(config.routesDirectory, routePathIdPrefix + rootPathId),\n ),\n )}'`,\n ...sortedRouteNodes\n .filter((d) => !d.isVirtual)\n .map((node) => {\n return `import { Route as ${\n node.variableName\n }Import } from './${sanitize(\n removeExt(\n path.relative(\n path.dirname(config.generatedRouteTree),\n path.resolve(config.routesDirectory, node.filePath),\n ),\n ),\n )}'`\n }),\n '\\n',\n sortedRouteNodes\n .filter((d) => d.isVirtual)\n .map((node) => {\n return `const ${node.variableName}Import = new FileRoute('${node.routePath}').createRoute()`\n })\n .join('\\n'),\n '\\n',\n sortedRouteNodes\n .map((node) => {\n const loaderNode = routePiecesByPath[node.routePath!]?.loader\n const componentNode = routePiecesByPath[node.routePath!]?.component\n\n return [\n `const ${node.variableName}Route = ${node.variableName}Import.update({\n ${[\n node.isNonPath\n ? `id: '${node.path}'`\n : `path: '${node.cleanedPath}'`,\n `getParentRoute: () => ${node.parent?.variableName ?? 'root'}Route`,\n ]\n .filter(Boolean)\n .join(',')}\n } as any)`,\n loaderNode\n ? `.updateLoader({ loader: lazyFn(() => import('./${sanitize(\n removeExt(\n path.relative(\n path.dirname(config.generatedRouteTree),\n path.resolve(config.routesDirectory, loaderNode.filePath),\n ),\n ),\n )}'), 'loader') })`\n : '',\n componentNode\n ? `.update({ component: lazyRouteComponent(() => import('./${sanitize(\n removeExt(\n path.relative(\n path.dirname(config.generatedRouteTree),\n path.resolve(\n config.routesDirectory,\n componentNode.filePath,\n ),\n ),\n ),\n )}'), 'component') })`\n : '',\n ].join('')\n })\n .join('\\n\\n'),\n `declare module '@tanstack/react-router' {\n interface FileRoutesByPath {\n ${routeNodes\n .map((routeNode) => {\n return `'${routeNode.routePath}': {\n preLoaderRoute: typeof ${routeNode.variableName}Import\n parentRoute: typeof ${\n routeNode.parent?.variableName\n ? `${routeNode.parent?.variableName}Import`\n : 'rootRoute'\n }\n }`\n })\n .join('\\n')}\n }\n}`,\n `export const routeTree = rootRoute.addChildren([${routeConfigChildrenText}])`,\n ].join('\\n')\n\n const routeConfigFileContent = await prettier.format(routeImports, {\n semi: false,\n singleQuote: config.quoteStyle === 'single',\n parser: 'typescript',\n })\n\n const routeTreeContent = await fs\n .readFile(path.resolve(config.generatedRouteTree), 'utf-8')\n .catch((err: any) => {\n if (err.code === 'ENOENT') {\n return undefined\n }\n throw err\n })\n\n if (!checkLatest()) return\n\n if (routeTreeContent !== routeConfigFileContent) {\n await fs.mkdir(path.dirname(path.resolve(config.generatedRouteTree)), {\n recursive: true,\n })\n if (!checkLatest()) return\n await fs.writeFile(\n path.resolve(config.generatedRouteTree),\n routeConfigFileContent,\n )\n }\n\n console.log(\n `🌲 Processed ${routeNodes.length} routes in ${Date.now() - start}ms`,\n )\n}\n\nfunction fileToVariable(d: string): string {\n return (\n removeUnderscores(d)\n ?.replace(/\\$/g, '')\n ?.split(/[/-]/g)\n .map((d, i) => (i > 0 ? capitalize(d) : d))\n .join('')\n .replace(/([^a-zA-Z0-9]|[\\.])/gm, '') ?? ''\n )\n}\n\nexport function removeExt(d: string) {\n return d.substring(0, d.lastIndexOf('.')) || d\n}\n\nfunction spaces(d: number): string {\n return Array.from({ length: d })\n .map(() => ' ')\n .join('')\n}\n\nexport function multiSortBy<T>(\n arr: T[],\n accessors: ((item: T) => any)[] = [(d) => d],\n): T[] {\n return arr\n .map((d, i) => [d, i] as const)\n .sort(([a, ai], [b, bi]) => {\n for (const accessor of accessors) {\n const ao = accessor(a)\n const bo = accessor(b)\n\n if (typeof ao === 'undefined') {\n if (typeof bo === 'undefined') {\n continue\n }\n return 1\n }\n\n if (ao === bo) {\n continue\n }\n\n return ao > bo ? 1 : -1\n }\n\n return ai - bi\n })\n .map(([d]) => d)\n}\n\nfunction capitalize(s: string) {\n if (typeof s !== 'string') return ''\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\nfunction sanitize(s?: string) {\n return replaceBackslash(s?.replace(/\\\\index/gi, ''))\n}\n\nfunction removeUnderscores(s?: string) {\n return s?.replace(/(^_|_$)/, '').replace(/(\\/_|_\\/)/, '/')\n}\n\nfunction replaceBackslash(s?: string) {\n return s?.replace(/\\\\/gi, '/')\n}\n\nexport function hasParentRoute(\n routes: RouteNode[],\n routePathToCheck: string | undefined,\n): RouteNode | null {\n if (!routePathToCheck || routePathToCheck === '/') {\n return null\n }\n\n const sortedNodes = multiSortBy(routes, [\n (d) => d.routePath!.length * -1,\n (d) => d.variableName,\n ]).filter((d) => d.routePath !== `/${rootPathId}`)\n\n for (const route of sortedNodes) {\n if (route.routePath === '/') continue\n\n if (\n routePathToCheck.startsWith(`${route.routePath}/`) &&\n route.routePath !== routePathToCheck\n ) {\n return route\n }\n }\n const segments = routePathToCheck.split('/')\n segments.pop() // Remove the last segment\n const parentRoutePath = segments.join('/')\n\n return hasParentRoute(routes, parentRoutePath)\n}\n"],"names":["latestTask","rootPathId","fileRouteRegex","getRouteNodes","config","routeFilePrefix","routeFileIgnorePrefix","routeNodes","recurse","dir","fullDir","path","resolve","routesDirectory","dirList","fs","readdir","filter","d","startsWith","Promise","all","map","fileName","fullPath","join","relativePath","stat","isDirectory","filePath","filePathNoExt","removeExt","routePath","replaceBackslash","cleanPath","split","variableName","fileToVariable","endsWith","replace","push","first","skipMessage","generator","console","log","taskId","checkLatest","start","Date","now","routePathIdPrefix","preRouteNodes","sortRouteNodes","nodes","multiSortBy","length","match","routeTree","routePiecesByPath","handleNode","node","future","unstable_codeSplitting","isRoute","isComponent","isLoader","parentRoute","hasParentRoute","parent","trimmedPath","trimPathLeft","isNonPath","isNonLayout","cleanedPath","removeUnderscores","anchorRoute","find","isVirtual","children","forEach","buildRouteConfig","depth","routeCode","readFile","isRoot","escapedRoutePath","replaceAll","quote","quoteStyle","replaced","writeFile","route","childConfigs","spaces","Boolean","routeConfigChildrenText","sortedRouteNodes","includes","imports","Object","entries","FileRoute","some","lazyFn","loader","lazyRouteComponent","component","routeImports","sanitize","relative","dirname","generatedRouteTree","loaderNode","componentNode","routeNode","routeConfigFileContent","prettier","semi","singleQuote","parser","routeTreeContent","catch","err","code","undefined","mkdir","recursive","i","capitalize","substring","lastIndexOf","Array","from","arr","accessors","sort","a","ai","b","bi","accessor","ao","bo","s","charAt","toUpperCase","slice","routes","routePathToCheck","sortedNodes","segments","pop","parentRoutePath"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAIA,UAAU,GAAG,CAAC,CAAA;AACX,MAAMC,UAAU,GAAG,SAAQ;AAC3B,MAAMC,cAAc,GAAG,8BAA6B;AAoB3D,eAAeC,aAAaA,CAACC,MAAc,EAAE;EAC3C,MAAM;IAAEC,eAAe;AAAEC,IAAAA,qBAAAA;AAAsB,GAAC,GAAGF,MAAM,CAAA;EAEzD,IAAIG,UAAuB,GAAG,EAAE,CAAA;EAEhC,eAAeC,OAAOA,CAACC,GAAW,EAAE;IAClC,MAAMC,OAAO,GAAGC,IAAI,CAACC,OAAO,CAACR,MAAM,CAACS,eAAe,EAAEJ,GAAG,CAAC,CAAA;IACzD,IAAIK,OAAO,GAAG,MAAMC,aAAE,CAACC,OAAO,CAACN,OAAO,CAAC,CAAA;AAEvCI,IAAAA,OAAO,GAAGA,OAAO,CAACG,MAAM,CAAEC,CAAC,IAAK;AAC9B,MAAA,IACEA,CAAC,CAACC,UAAU,CAAC,GAAG,CAAC,IAChBb,qBAAqB,IAAIY,CAAC,CAACC,UAAU,CAACb,qBAAqB,CAAE,EAC9D;AACA,QAAA,OAAO,KAAK,CAAA;AACd,OAAA;AAEA,MAAA,IAAID,eAAe,EAAE;AACnB,QAAA,OAAOa,CAAC,CAACC,UAAU,CAACd,eAAe,CAAC,CAAA;AACtC,OAAA;AAEA,MAAA,OAAO,IAAI,CAAA;AACb,KAAC,CAAC,CAAA;IAEF,MAAMe,OAAO,CAACC,GAAG,CACfP,OAAO,CAACQ,GAAG,CAAC,MAAOC,QAAQ,IAAK;MAC9B,MAAMC,QAAQ,GAAGb,IAAI,CAACc,IAAI,CAACf,OAAO,EAAEa,QAAQ,CAAC,CAAA;MAC7C,MAAMG,YAAY,GAAGf,IAAI,CAACc,IAAI,CAAChB,GAAG,EAAEc,QAAQ,CAAC,CAAA;MAC7C,MAAMI,IAAI,GAAG,MAAMZ,aAAE,CAACY,IAAI,CAACH,QAAQ,CAAC,CAAA;AAEpC,MAAA,IAAIG,IAAI,CAACC,WAAW,EAAE,EAAE;QACtB,MAAMpB,OAAO,CAACkB,YAAY,CAAC,CAAA;AAC7B,OAAC,MAAM;QACL,MAAMG,QAAQ,GAAGlB,IAAI,CAACc,IAAI,CAAChB,GAAG,EAAEc,QAAQ,CAAC,CAAA;AACzC,QAAA,MAAMO,aAAa,GAAGC,SAAS,CAACF,QAAQ,CAAC,CAAA;QACzC,IAAIG,SAAS,GACXC,gBAAgB,CACdC,qBAAS,CAAE,CAAA,CAAA,EAAGJ,aAAa,CAACK,KAAK,CAAC,GAAG,CAAC,CAACV,IAAI,CAAC,GAAG,CAAE,CAAC,CAAA,CACpD,CAAC,IAAI,EAAE,CAAA;AACT,QAAA,MAAMW,YAAY,GAAGC,cAAc,CAACL,SAAS,CAAC,CAAA;;AAE9C;AACA;QACA,IAAIA,SAAS,KAAK,OAAO,EAAE;AACzBA,UAAAA,SAAS,GAAG,GAAG,CAAA;SAChB,MAAM,IAAIA,SAAS,CAACM,QAAQ,CAAC,QAAQ,CAAC,EAAE;UACvCN,SAAS,GAAGA,SAAS,CAACO,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;AAChD,SAAA;QAEAhC,UAAU,CAACiC,IAAI,CAAC;UACdX,QAAQ;UACRL,QAAQ;UACRQ,SAAS;AACTI,UAAAA,YAAAA;AACF,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAC,CACH,CAAC,CAAA;AAED,IAAA,OAAO7B,UAAU,CAAA;AACnB,GAAA;EAEA,MAAMC,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnB,EAAA,OAAOD,UAAU,CAAA;AACnB,CAAA;AAEA,IAAIkC,KAAK,GAAG,KAAK,CAAA;AACjB,IAAIC,WAAW,GAAG,KAAK,CAAA;AAOhB,eAAeC,SAASA,CAACvC,MAAc,EAAE;EAC9CwC,OAAO,CAACC,GAAG,EAAE,CAAA;EAEb,IAAI,CAACJ,KAAK,EAAE;AACVG,IAAAA,OAAO,CAACC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACtCJ,IAAAA,KAAK,GAAG,IAAI,CAAA;GACb,MAAM,IAAIC,WAAW,EAAE;AACtBA,IAAAA,WAAW,GAAG,KAAK,CAAA;AACrB,GAAC,MAAM;AACLE,IAAAA,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAC3C,GAAA;AAEA,EAAA,MAAMC,MAAM,GAAG9C,UAAU,GAAG,CAAC,CAAA;AAC7BA,EAAAA,UAAU,GAAG8C,MAAM,CAAA;EAEnB,MAAMC,WAAW,GAAGA,MAAM;IACxB,IAAI/C,UAAU,KAAK8C,MAAM,EAAE;AACzBJ,MAAAA,WAAW,GAAG,IAAI,CAAA;AAClB,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AAEA,IAAA,OAAO,IAAI,CAAA;GACZ,CAAA;AAED,EAAA,MAAMM,KAAK,GAAGC,IAAI,CAACC,GAAG,EAAE,CAAA;AACxB,EAAA,MAAMC,iBAAiB,GAAG/C,MAAM,CAACC,eAAe,IAAI,EAAE,CAAA;AAEtD,EAAA,IAAI+C,aAAa,GAAG,MAAMjD,aAAa,CAACC,MAAM,CAAC,CAAA;EAE/C,MAAMiD,cAAc,GAAIC,KAAkB,IAAkB;IAC1D,OAAOC,WAAW,CAACD,KAAK,EAAE,CACvBpC,CAAC,IAAMA,CAAC,CAACc,SAAS,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,CAAE,EACpCd,CAAC,IAAKA,CAAC,CAACc,SAAS,EAAEG,KAAK,CAAC,GAAG,CAAC,CAACqB,MAAM,EACpCtC,CAAC,IAAMA,CAAC,CAACW,QAAQ,EAAE4B,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAClDvC,CAAC,IAAMA,CAAC,CAACW,QAAQ,EAAE4B,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAE,EAClDvC,CAAC,IAAMA,CAAC,CAACc,SAAS,EAAEM,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAE,EAC3CpB,CAAC,IAAKA,CAAC,CAACc,SAAS,CACnB,CAAC,CAACf,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACc,SAAS,KAAM,IAAGmB,iBAAiB,GAAGlD,UAAW,CAAA,CAAC,CAAC,CAAA;GACvE,CAAA;AAEDmD,EAAAA,aAAa,GAAGC,cAAc,CAACD,aAAa,CAAC,CAAA;EAE7C,MAAMM,SAAsB,GAAG,EAAE,CAAA;EACjC,MAAMC,iBAA+C,GAAG,EAAE,CAAA;;AAE1D;AACA;EACA,IAAIpD,UAAuB,GAAG,EAAE,CAAA;EAEhC,MAAMqD,UAAU,GAAIC,IAAe,IAAK;AACtC,IAAA,IAAIzD,MAAM,CAAC0D,MAAM,EAAEC,sBAAsB,EAAE;MACzCF,IAAI,CAACG,OAAO,GAAGH,IAAI,CAAC7B,SAAS,EAAEM,QAAQ,CAAC,QAAQ,CAAC,CAAA;MACjDuB,IAAI,CAACI,WAAW,GAAGJ,IAAI,CAAC7B,SAAS,EAAEM,QAAQ,CAAC,YAAY,CAAC,CAAA;MACzDuB,IAAI,CAACK,QAAQ,GAAGL,IAAI,CAAC7B,SAAS,EAAEM,QAAQ,CAAC,SAAS,CAAC,CAAA;MAEnD,IAAIuB,IAAI,CAACI,WAAW,IAAIJ,IAAI,CAACK,QAAQ,IAAIL,IAAI,CAACG,OAAO,EAAE;AACrDH,QAAAA,IAAI,CAAC7B,SAAS,GAAG6B,IAAI,CAAC7B,SAAS,EAAEO,OAAO,CACtC,6BAA6B,EAC7B,EACF,CAAC,CAAA;AACH,OAAA;AACF,KAAA;IAEA,MAAM4B,WAAW,GAAGC,cAAc,CAAC7D,UAAU,EAAEsD,IAAI,CAAC7B,SAAS,CAAC,CAAA;AAC9D,IAAA,IAAImC,WAAW,EAAEN,IAAI,CAACQ,MAAM,GAAGF,WAAW,CAAA;IAE1CN,IAAI,CAAClD,IAAI,GAAGkD,IAAI,CAACQ,MAAM,GACnBR,IAAI,CAAC7B,SAAS,EAAEO,OAAO,CAACsB,IAAI,CAACQ,MAAM,CAACrC,SAAS,EAAG,EAAE,CAAC,IAAI,GAAG,GAC1D6B,IAAI,CAAC7B,SAAS,CAAA;IAElB,MAAMsC,WAAW,GAAGC,wBAAY,CAACV,IAAI,CAAClD,IAAI,IAAI,EAAE,CAAC,CAAA;IAEjD,MAAMwB,KAAK,GAAGmC,WAAW,EAAEnC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IAC3C,IAAIM,KAAK,GAAGN,KAAK,CAAC,CAAC,CAAC,IAAImC,WAAW,IAAI,EAAE,CAAA;IAEzCT,IAAI,CAACW,SAAS,GAAG/B,KAAK,CAACtB,UAAU,CAAC,GAAG,CAAC,CAAA;IACtC0C,IAAI,CAACY,WAAW,GAAGhC,KAAK,CAACH,QAAQ,CAAC,GAAG,CAAC,CAAA;IAEtCuB,IAAI,CAACa,WAAW,GAAGC,iBAAiB,CAACd,IAAI,CAAClD,IAAI,CAAC,IAAI,EAAE,CAAA;AAErD,IAAA,IAAIP,MAAM,CAAC0D,MAAM,EAAEC,sBAAsB,EAAE;AACzC,MAAA,IAAIF,IAAI,CAACK,QAAQ,IAAIL,IAAI,CAACI,WAAW,EAAE;AACrCN,QAAAA,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,GAChC2B,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,IAAI,EAAE,CAAA;AAE1C2B,QAAAA,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,CAChC6B,IAAI,CAACK,QAAQ,GAAG,QAAQ,GAAG,WAAW,CACvC,GAAGL,IAAI,CAAA;AAER,QAAA,MAAMe,WAAW,GAAGrE,UAAU,CAACsE,IAAI,CAChC3D,CAAC,IAAKA,CAAC,CAACc,SAAS,KAAK6B,IAAI,CAAC7B,SAC9B,CAAC,CAAA;QACD,IAAI,CAAC4C,WAAW,EAAE;AAChBhB,UAAAA,UAAU,CAAC;AACT,YAAA,GAAGC,IAAI;AACPiB,YAAAA,SAAS,EAAE,IAAA;AACb,WAAC,CAAC,CAAA;AACJ,SAAA;AACA;AACA;;AAEA;AACA;AACA,QAAA,OAAA;AACF,OAAA;AACF,KAAA;IAEA,IAAIjB,IAAI,CAACQ,MAAM,EAAE;MACfR,IAAI,CAACQ,MAAM,CAACU,QAAQ,GAAGlB,IAAI,CAACQ,MAAM,CAACU,QAAQ,IAAI,EAAE,CAAA;MACjDlB,IAAI,CAACQ,MAAM,CAACU,QAAQ,CAACvC,IAAI,CAACqB,IAAI,CAAC,CAAA;AACjC,KAAC,MAAM;AACLH,MAAAA,SAAS,CAAClB,IAAI,CAACqB,IAAI,CAAC,CAAA;AACtB,KAAA;AAEAtD,IAAAA,UAAU,CAACiC,IAAI,CAACqB,IAAI,CAAC,CAAA;GACtB,CAAA;EAEDT,aAAa,CAAC4B,OAAO,CAAEnB,IAAI,IAAKD,UAAU,CAACC,IAAI,CAAC,CAAC,CAAA;AAEjD,EAAA,eAAeoB,gBAAgBA,CAC7B3B,KAAkB,EAClB4B,KAAK,GAAG,CAAC,EACQ;IACjB,MAAMH,QAAQ,GAAGzB,KAAK,CAAChC,GAAG,CAAC,MAAOuC,IAAI,IAAK;AACzC,MAAA,MAAMsB,SAAS,GAAG,MAAMpE,aAAE,CAACqE,QAAQ,CAACvB,IAAI,CAACrC,QAAQ,EAAE,OAAO,CAAC,CAAA;;AAE3D;MACA,IAAIqC,IAAI,CAACwB,MAAM,EAAE;AACf,QAAA,OAAA;AACF,OAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAA,MAAMC,gBAAgB,GAAGzB,IAAI,CAAC7B,SAAS,EAAEuD,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;MACtE,MAAMC,KAAK,GAAGpF,MAAM,CAACqF,UAAU,KAAK,QAAQ,GAAI,CAAE,CAAA,CAAA,GAAI,CAAE,CAAA,CAAA,CAAA;AACxD,MAAA,MAAMC,QAAQ,GAAGP,SAAS,CAAC5C,OAAO,CAChCrC,cAAc,EACb,CAAA,cAAA,EAAgBsF,KAAM,CAAEF,EAAAA,gBAAiB,CAAEE,EAAAA,KAAM,GACpD,CAAC,CAAA;MAED,IAAIE,QAAQ,KAAKP,SAAS,EAAE;QAC1B,MAAMpE,aAAE,CAAC4E,SAAS,CAAC9B,IAAI,CAACrC,QAAQ,EAAEkE,QAAQ,CAAC,CAAA;AAC7C,OAAA;AAEA,MAAA,MAAME,KAAK,GAAI,CAAA,EAAE/B,IAAI,CAACzB,YAAa,CAAM,KAAA,CAAA,CAAA;AAEzC,MAAA,IAAIyB,IAAI,CAACkB,QAAQ,EAAEvB,MAAM,EAAE;AACzB,QAAA,MAAMqC,YAAY,GAAG,MAAMZ,gBAAgB,CAACpB,IAAI,CAACkB,QAAQ,EAAEG,KAAK,GAAG,CAAC,CAAC,CAAA;QACrE,OAAQ,CAAA,EAAEU,KAAM,CAAA,cAAA,EAAgBE,MAAM,CAACZ,KAAK,GAAG,CAAC,CAAE,CAAEW,EAAAA,YAAa,CAAG,EAAA,CAAA,CAAA;AACtE,OAAA;AAEA,MAAA,OAAOD,KAAK,CAAA;AACd,KAAC,CAAC,CAAA;AAEF,IAAA,OAAO,CAAC,MAAMxE,OAAO,CAACC,GAAG,CAAC0D,QAAQ,CAAC,EAAE9D,MAAM,CAAC8E,OAAO,CAAC,CAACtE,IAAI,CAAE,GAAE,CAAC,CAAA;AAChE,GAAA;AAEA,EAAA,MAAMuE,uBAAuB,GAAG,MAAMf,gBAAgB,CAACvB,SAAS,CAAC,CAAA;AAEjE,EAAA,MAAMuC,gBAAgB,GAAG1C,WAAW,CAAChD,UAAU,EAAE,CAC9CW,CAAC,IACAA,CAAC,CAACc,SAAS,EAAEkE,QAAQ,CAAE,CAAA,CAAA,EAAG/C,iBAAiB,GAAGlD,UAAW,CAAA,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EACrEiB,CAAC,IAAKA,CAAC,CAACc,SAAS,EAAEG,KAAK,CAAC,GAAG,CAAC,CAACqB,MAAM,EACpCtC,CAAC,IAAMA,CAAC,CAACc,SAAS,EAAEM,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAE,EAChDpB,CAAC,IAAKA,CAAC,CACT,CAAC,CAAA;AAEF,EAAA,MAAMiF,OAAO,GAAGC,MAAM,CAACC,OAAO,CAAC;IAC7BC,SAAS,EAAEL,gBAAgB,CAACM,IAAI,CAAErF,CAAC,IAAKA,CAAC,CAAC4D,SAAS,CAAC;AACpD0B,IAAAA,MAAM,EAAEP,gBAAgB,CAACM,IAAI,CAC1B1C,IAAI,IAAKF,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,EAAEyE,MAChD,CAAC;AACDC,IAAAA,kBAAkB,EAAET,gBAAgB,CAACM,IAAI,CACtC1C,IAAI,IAAKF,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,EAAE2E,SAChD,CAAA;GACD,CAAC,CACC1F,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACnBI,GAAG,CAAEJ,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEnB,EAAA,MAAM0F,YAAY,GAAG,CACnBT,OAAO,CAAC3C,MAAM,GACT,CAAA,SAAA,EAAW2C,OAAO,CAAC1E,IAAI,CAAC,IAAI,CAAE,CAAA,kCAAA,CAAmC,GAClE,EAAE,EACL,CAAA,sCAAA,EAAwCoF,QAAQ,CAC/ClG,IAAI,CAACmG,QAAQ,CACXnG,IAAI,CAACoG,OAAO,CAAC3G,MAAM,CAAC4G,kBAAkB,CAAC,EACvCrG,IAAI,CAACC,OAAO,CAACR,MAAM,CAACS,eAAe,EAAEsC,iBAAiB,GAAGlD,UAAU,CACrE,CACF,CAAE,CAAE,CAAA,CAAA,EACJ,GAAGgG,gBAAgB,CAChBhF,MAAM,CAAEC,CAAC,IAAK,CAACA,CAAC,CAAC4D,SAAS,CAAC,CAC3BxD,GAAG,CAAEuC,IAAI,IAAK;AACb,IAAA,OAAQ,qBACNA,IAAI,CAACzB,YACN,CAAA,iBAAA,EAAmByE,QAAQ,CAC1B9E,SAAS,CACPpB,IAAI,CAACmG,QAAQ,CACXnG,IAAI,CAACoG,OAAO,CAAC3G,MAAM,CAAC4G,kBAAkB,CAAC,EACvCrG,IAAI,CAACC,OAAO,CAACR,MAAM,CAACS,eAAe,EAAEgD,IAAI,CAAChC,QAAQ,CACpD,CACF,CACF,CAAE,CAAE,CAAA,CAAA,CAAA;AACN,GAAC,CAAC,EACJ,IAAI,EACJoE,gBAAgB,CACbhF,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAAC4D,SAAS,CAAC,CAC1BxD,GAAG,CAAEuC,IAAI,IAAK;IACb,OAAQ,CAAA,MAAA,EAAQA,IAAI,CAACzB,YAAa,2BAA0ByB,IAAI,CAAC7B,SAAU,CAAiB,gBAAA,CAAA,CAAA;AAC9F,GAAC,CAAC,CACDP,IAAI,CAAC,IAAI,CAAC,EACb,IAAI,EACJwE,gBAAgB,CACb3E,GAAG,CAAEuC,IAAI,IAAK;IACb,MAAMoD,UAAU,GAAGtD,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,EAAEyE,MAAM,CAAA;IAC7D,MAAMS,aAAa,GAAGvD,iBAAiB,CAACE,IAAI,CAAC7B,SAAS,CAAE,EAAE2E,SAAS,CAAA;IAEnE,OAAO,CACJ,SAAQ9C,IAAI,CAACzB,YAAa,CAAUyB,QAAAA,EAAAA,IAAI,CAACzB,YAAa,CAAA;AACjE,UAAA,EAAY,CACAyB,IAAI,CAACW,SAAS,GACT,QAAOX,IAAI,CAAClD,IAAK,CAAA,CAAA,CAAE,GACnB,CAASkD,OAAAA,EAAAA,IAAI,CAACa,WAAY,GAAE,EAChC,CAAA,sBAAA,EAAwBb,IAAI,CAACQ,MAAM,EAAEjC,YAAY,IAAI,MAAO,OAAM,CACpE,CACEnB,MAAM,CAAC8E,OAAO,CAAC,CACftE,IAAI,CAAC,GAAG,CAAE,CAAA;AACvB,iBAAA,CAAkB,EACRwF,UAAU,GACL,CAAiDJ,+CAAAA,EAAAA,QAAQ,CACxD9E,SAAS,CACPpB,IAAI,CAACmG,QAAQ,CACXnG,IAAI,CAACoG,OAAO,CAAC3G,MAAM,CAAC4G,kBAAkB,CAAC,EACvCrG,IAAI,CAACC,OAAO,CAACR,MAAM,CAACS,eAAe,EAAEoG,UAAU,CAACpF,QAAQ,CAC1D,CACF,CACF,CAAE,CAAiB,gBAAA,CAAA,GACnB,EAAE,EACNqF,aAAa,GACR,CAAA,wDAAA,EAA0DL,QAAQ,CACjE9E,SAAS,CACPpB,IAAI,CAACmG,QAAQ,CACXnG,IAAI,CAACoG,OAAO,CAAC3G,MAAM,CAAC4G,kBAAkB,CAAC,EACvCrG,IAAI,CAACC,OAAO,CACVR,MAAM,CAACS,eAAe,EACtBqG,aAAa,CAACrF,QAChB,CACF,CACF,CACF,CAAE,CAAA,mBAAA,CAAoB,GACtB,EAAE,CACP,CAACJ,IAAI,CAAC,EAAE,CAAC,CAAA;AACZ,GAAC,CAAC,CACDA,IAAI,CAAC,MAAM,CAAC,EACd,CAAA;AACL;AACA,IAAA,EAAMlB,UAAU,CACTe,GAAG,CAAE6F,SAAS,IAAK;IAClB,OAAQ,CAAA,CAAA,EAAGA,SAAS,CAACnF,SAAU,CAAA;AACvC,iCAAmCmF,EAAAA,SAAS,CAAC/E,YAAa,CAAA;AAC1D,8BAAA,EACY+E,SAAS,CAAC9C,MAAM,EAAEjC,YAAY,GACzB,CAAA,EAAE+E,SAAS,CAAC9C,MAAM,EAAEjC,YAAa,CAAA,MAAA,CAAO,GACzC,WACL,CAAA;AACX,SAAU,CAAA,CAAA;AACJ,GAAC,CAAC,CACDX,IAAI,CAAC,IAAI,CAAE,CAAA;AAClB;AACA,CAAE,CAAA,EACG,mDAAkDuE,uBAAwB,CAAA,EAAA,CAAG,CAC/E,CAACvE,IAAI,CAAC,IAAI,CAAC,CAAA;EAEZ,MAAM2F,sBAAsB,GAAG,MAAMC,YAAe,CAACT,YAAY,EAAE;AACjEU,IAAAA,IAAI,EAAE,KAAK;AACXC,IAAAA,WAAW,EAAEnH,MAAM,CAACqF,UAAU,KAAK,QAAQ;AAC3C+B,IAAAA,MAAM,EAAE,YAAA;AACV,GAAC,CAAC,CAAA;EAEF,MAAMC,gBAAgB,GAAG,MAAM1G,aAAE,CAC9BqE,QAAQ,CAACzE,IAAI,CAACC,OAAO,CAACR,MAAM,CAAC4G,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAC1DU,KAAK,CAAEC,GAAQ,IAAK;AACnB,IAAA,IAAIA,GAAG,CAACC,IAAI,KAAK,QAAQ,EAAE;AACzB,MAAA,OAAOC,SAAS,CAAA;AAClB,KAAA;AACA,IAAA,MAAMF,GAAG,CAAA;AACX,GAAC,CAAC,CAAA;AAEJ,EAAA,IAAI,CAAC5E,WAAW,EAAE,EAAE,OAAA;EAEpB,IAAI0E,gBAAgB,KAAKL,sBAAsB,EAAE;AAC/C,IAAA,MAAMrG,aAAE,CAAC+G,KAAK,CAACnH,IAAI,CAACoG,OAAO,CAACpG,IAAI,CAACC,OAAO,CAACR,MAAM,CAAC4G,kBAAkB,CAAC,CAAC,EAAE;AACpEe,MAAAA,SAAS,EAAE,IAAA;AACb,KAAC,CAAC,CAAA;AACF,IAAA,IAAI,CAAChF,WAAW,EAAE,EAAE,OAAA;AACpB,IAAA,MAAMhC,aAAE,CAAC4E,SAAS,CAChBhF,IAAI,CAACC,OAAO,CAACR,MAAM,CAAC4G,kBAAkB,CAAC,EACvCI,sBACF,CAAC,CAAA;AACH,GAAA;AAEAxE,EAAAA,OAAO,CAACC,GAAG,CACR,CAAetC,aAAAA,EAAAA,UAAU,CAACiD,MAAO,CAAA,WAAA,EAAaP,IAAI,CAACC,GAAG,EAAE,GAAGF,KAAM,IACpE,CAAC,CAAA;AACH,CAAA;AAEA,SAASX,cAAcA,CAACnB,CAAS,EAAU;EACzC,OACEyD,iBAAiB,CAACzD,CAAC,CAAC,EAChBqB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAClBJ,KAAK,CAAC,OAAO,CAAC,CACfb,GAAG,CAAC,CAACJ,CAAC,EAAE8G,CAAC,KAAMA,CAAC,GAAG,CAAC,GAAGC,UAAU,CAAC/G,CAAC,CAAC,GAAGA,CAAE,CAAC,CAC1CO,IAAI,CAAC,EAAE,CAAC,CACRc,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;AAEjD,CAAA;AAEO,SAASR,SAASA,CAACb,CAAS,EAAE;AACnC,EAAA,OAAOA,CAAC,CAACgH,SAAS,CAAC,CAAC,EAAEhH,CAAC,CAACiH,WAAW,CAAC,GAAG,CAAC,CAAC,IAAIjH,CAAC,CAAA;AAChD,CAAA;AAEA,SAAS4E,MAAMA,CAAC5E,CAAS,EAAU;EACjC,OAAOkH,KAAK,CAACC,IAAI,CAAC;AAAE7E,IAAAA,MAAM,EAAEtC,CAAAA;GAAG,CAAC,CAC7BI,GAAG,CAAC,MAAM,GAAG,CAAC,CACdG,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAA;AAEO,SAAS8B,WAAWA,CACzB+E,GAAQ,EACRC,SAA+B,GAAG,CAAErH,CAAC,IAAKA,CAAC,CAAC,EACvC;AACL,EAAA,OAAOoH,GAAG,CACPhH,GAAG,CAAC,CAACJ,CAAC,EAAE8G,CAAC,KAAK,CAAC9G,CAAC,EAAE8G,CAAC,CAAU,CAAC,CAC9BQ,IAAI,CAAC,CAAC,CAACC,CAAC,EAAEC,EAAE,CAAC,EAAE,CAACC,CAAC,EAAEC,EAAE,CAAC,KAAK;AAC1B,IAAA,KAAK,MAAMC,QAAQ,IAAIN,SAAS,EAAE;AAChC,MAAA,MAAMO,EAAE,GAAGD,QAAQ,CAACJ,CAAC,CAAC,CAAA;AACtB,MAAA,MAAMM,EAAE,GAAGF,QAAQ,CAACF,CAAC,CAAC,CAAA;AAEtB,MAAA,IAAI,OAAOG,EAAE,KAAK,WAAW,EAAE;AAC7B,QAAA,IAAI,OAAOC,EAAE,KAAK,WAAW,EAAE;AAC7B,UAAA,SAAA;AACF,SAAA;AACA,QAAA,OAAO,CAAC,CAAA;AACV,OAAA;MAEA,IAAID,EAAE,KAAKC,EAAE,EAAE;AACb,QAAA,SAAA;AACF,OAAA;AAEA,MAAA,OAAOD,EAAE,GAAGC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACzB,KAAA;IAEA,OAAOL,EAAE,GAAGE,EAAE,CAAA;GACf,CAAC,CACDtH,GAAG,CAAC,CAAC,CAACJ,CAAC,CAAC,KAAKA,CAAC,CAAC,CAAA;AACpB,CAAA;AAEA,SAAS+G,UAAUA,CAACe,CAAS,EAAE;AAC7B,EAAA,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE,OAAO,EAAE,CAAA;AACpC,EAAA,OAAOA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,CAAC,CAACG,KAAK,CAAC,CAAC,CAAC,CAAA;AAC/C,CAAA;AAEA,SAAStC,QAAQA,CAACmC,CAAU,EAAE;EAC5B,OAAO/G,gBAAgB,CAAC+G,CAAC,EAAEzG,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;AACtD,CAAA;AAEA,SAASoC,iBAAiBA,CAACqE,CAAU,EAAE;AACrC,EAAA,OAAOA,CAAC,EAAEzG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;AAC5D,CAAA;AAEA,SAASN,gBAAgBA,CAAC+G,CAAU,EAAE;AACpC,EAAA,OAAOA,CAAC,EAAEzG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAChC,CAAA;AAEO,SAAS6B,cAAcA,CAC5BgF,MAAmB,EACnBC,gBAAoC,EAClB;AAClB,EAAA,IAAI,CAACA,gBAAgB,IAAIA,gBAAgB,KAAK,GAAG,EAAE;AACjD,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,MAAMC,WAAW,GAAG/F,WAAW,CAAC6F,MAAM,EAAE,CACrClI,CAAC,IAAKA,CAAC,CAACc,SAAS,CAAEwB,MAAM,GAAG,CAAC,CAAC,EAC9BtC,CAAC,IAAKA,CAAC,CAACkB,YAAY,CACtB,CAAC,CAACnB,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACc,SAAS,KAAM,CAAG/B,CAAAA,EAAAA,UAAW,EAAC,CAAC,CAAA;AAElD,EAAA,KAAK,MAAM2F,KAAK,IAAI0D,WAAW,EAAE;AAC/B,IAAA,IAAI1D,KAAK,CAAC5D,SAAS,KAAK,GAAG,EAAE,SAAA;AAE7B,IAAA,IACEqH,gBAAgB,CAAClI,UAAU,CAAE,CAAA,EAAEyE,KAAK,CAAC5D,SAAU,CAAE,CAAA,CAAA,CAAC,IAClD4D,KAAK,CAAC5D,SAAS,KAAKqH,gBAAgB,EACpC;AACA,MAAA,OAAOzD,KAAK,CAAA;AACd,KAAA;AACF,GAAA;AACA,EAAA,MAAM2D,QAAQ,GAAGF,gBAAgB,CAAClH,KAAK,CAAC,GAAG,CAAC,CAAA;AAC5CoH,EAAAA,QAAQ,CAACC,GAAG,EAAE,CAAC;AACf,EAAA,MAAMC,eAAe,GAAGF,QAAQ,CAAC9H,IAAI,CAAC,GAAG,CAAC,CAAA;AAE1C,EAAA,OAAO2C,cAAc,CAACgF,MAAM,EAAEK,eAAe,CAAC,CAAA;AAChD;;;;;;;;;"}
|
package/build/esm/index.js
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
* @license MIT
|
|
10
10
|
*/
|
|
11
11
|
import path, { dirname, join as join$1 } from 'path';
|
|
12
|
-
import
|
|
12
|
+
import * as fs from 'fs/promises';
|
|
13
|
+
import fs__default, { readFile as readFile$1 } from 'fs/promises';
|
|
13
14
|
import fs$1, { realpathSync, statSync, Stats } from 'fs';
|
|
14
15
|
import { createRequire, builtinModules } from 'module';
|
|
15
16
|
import { fileURLToPath, pathToFileURL, URL as URL$1 } from 'url';
|
|
@@ -10465,7 +10466,7 @@ getStdin.buffer = async () => {
|
|
|
10465
10466
|
// src/common/mockable.js
|
|
10466
10467
|
var import_ci_info = __toESM$1(require_ci_info(), 1);
|
|
10467
10468
|
function writeFormattedFile(file, data) {
|
|
10468
|
-
return
|
|
10469
|
+
return fs__default.writeFile(file, data);
|
|
10469
10470
|
}
|
|
10470
10471
|
var mockable = {
|
|
10471
10472
|
cosmiconfig: import_cosmiconfig.cosmiconfig,
|
|
@@ -31555,7 +31556,7 @@ function pathMatchesGlobs(filePath, patterns, excludedPatterns) {
|
|
|
31555
31556
|
var import_ignore = __toESM(require_ignore(), 1);
|
|
31556
31557
|
async function readFile(filename) {
|
|
31557
31558
|
try {
|
|
31558
|
-
return await
|
|
31559
|
+
return await fs__default.readFile(filename, "utf8");
|
|
31559
31560
|
} catch (error) {
|
|
31560
31561
|
if (error.code === "ENOENT") {
|
|
31561
31562
|
return;
|
|
@@ -33013,7 +33014,7 @@ async function getRouteNodes(config) {
|
|
|
33013
33014
|
let routeNodes = [];
|
|
33014
33015
|
async function recurse(dir) {
|
|
33015
33016
|
const fullDir = path.resolve(config.routesDirectory, dir);
|
|
33016
|
-
let dirList = await
|
|
33017
|
+
let dirList = await fs.readdir(fullDir);
|
|
33017
33018
|
dirList = dirList.filter(d => {
|
|
33018
33019
|
if (d.startsWith('.') || routeFileIgnorePrefix && d.startsWith(routeFileIgnorePrefix)) {
|
|
33019
33020
|
return false;
|
|
@@ -33026,7 +33027,7 @@ async function getRouteNodes(config) {
|
|
|
33026
33027
|
await Promise.all(dirList.map(async fileName => {
|
|
33027
33028
|
const fullPath = path.join(fullDir, fileName);
|
|
33028
33029
|
const relativePath = path.join(dir, fileName);
|
|
33029
|
-
const stat = await
|
|
33030
|
+
const stat = await fs.stat(fullPath);
|
|
33030
33031
|
if (stat.isDirectory()) {
|
|
33031
33032
|
await recurse(relativePath);
|
|
33032
33033
|
} else {
|
|
@@ -33137,7 +33138,7 @@ async function generator(config) {
|
|
|
33137
33138
|
preRouteNodes.forEach(node => handleNode(node));
|
|
33138
33139
|
async function buildRouteConfig(nodes, depth = 1) {
|
|
33139
33140
|
const children = nodes.map(async node => {
|
|
33140
|
-
const routeCode = await
|
|
33141
|
+
const routeCode = await fs.readFile(node.fullPath, 'utf-8');
|
|
33141
33142
|
|
|
33142
33143
|
// Ensure the boilerplate for the route exists
|
|
33143
33144
|
if (node.isRoot) {
|
|
@@ -33153,7 +33154,7 @@ async function generator(config) {
|
|
|
33153
33154
|
const quote = config.quoteStyle === 'single' ? `'` : `"`;
|
|
33154
33155
|
const replaced = routeCode.replace(fileRouteRegex, `new FileRoute(${quote}${escapedRoutePath}${quote})`);
|
|
33155
33156
|
if (replaced !== routeCode) {
|
|
33156
|
-
await
|
|
33157
|
+
await fs.writeFile(node.fullPath, replaced);
|
|
33157
33158
|
}
|
|
33158
33159
|
const route = `${node.variableName}Route`;
|
|
33159
33160
|
if (node.children?.length) {
|
|
@@ -33196,7 +33197,7 @@ async function generator(config) {
|
|
|
33196
33197
|
singleQuote: config.quoteStyle === 'single',
|
|
33197
33198
|
parser: 'typescript'
|
|
33198
33199
|
});
|
|
33199
|
-
const routeTreeContent = await
|
|
33200
|
+
const routeTreeContent = await fs.readFile(path.resolve(config.generatedRouteTree), 'utf-8').catch(err => {
|
|
33200
33201
|
if (err.code === 'ENOENT') {
|
|
33201
33202
|
return undefined;
|
|
33202
33203
|
}
|
|
@@ -33204,9 +33205,11 @@ async function generator(config) {
|
|
|
33204
33205
|
});
|
|
33205
33206
|
if (!checkLatest()) return;
|
|
33206
33207
|
if (routeTreeContent !== routeConfigFileContent) {
|
|
33207
|
-
await
|
|
33208
|
+
await fs.mkdir(path.dirname(path.resolve(config.generatedRouteTree)), {
|
|
33209
|
+
recursive: true
|
|
33210
|
+
});
|
|
33208
33211
|
if (!checkLatest()) return;
|
|
33209
|
-
await
|
|
33212
|
+
await fs.writeFile(path.resolve(config.generatedRouteTree), routeConfigFileContent);
|
|
33210
33213
|
}
|
|
33211
33214
|
console.log(`🌲 Processed ${routeNodes.length} routes in ${Date.now() - start}ms`);
|
|
33212
33215
|
}
|