aaex-file-router 1.6.4 → 1.7.1

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/README.md CHANGED
@@ -2,9 +2,8 @@
2
2
 
3
3
  A file-based routing system for React projects that automatically generates routes from your file structure. Similar to Next.js App Router or Remix file conventions.
4
4
 
5
- ## V. 1.6.4
6
- Hopefully made code editors able to autocomplete and suggest imorts from the package
7
-
5
+ ## V. 1.7.0
6
+ Added support for 404 page and root layout file
8
7
  ## Table of Contents
9
8
 
10
9
  - [Features](#features)
@@ -8,37 +8,25 @@ interface FileNode {
8
8
  export declare class RouteGenerator {
9
9
  private topLevelImports;
10
10
  private importSet;
11
- /** Convert file/folder name to route segment, replacing [slug] with :slug */
12
11
  private normalizeSegment;
13
- /** Convert file/folder name to type segment, replacing [slug] with {string} */
14
12
  private normalizeTypeSegment;
15
- /** Convert string to PascalCase */
16
13
  private toPascal;
17
- /** Add import statement if not already imported */
18
14
  private addImport;
19
- /** Generate import name with folder prefix */
20
15
  private getPrefixedName;
21
- /** Create route object for a directory (may contain layout/loading/children) */
22
16
  private createDirectoryRoute;
23
- /** Create route object for a file */
24
17
  private createFileRoute;
25
- /** Recursively convert FileNode array into RouteConfig array */
26
18
  private fileDataToRoutes;
27
- /** Collect all route paths for type generation */
28
- private collectPaths;
29
- /** Build TypeScript union type string */
30
- private buildTypeUnion;
31
- /** ---------------- Server specific functions for AaExJS ---------------- */
32
- private createServerDirectoryRoute;
33
- /** Creates server route with the module path included */
34
- private createServerFileRoute;
35
- /**Builds routes usable by vite ssr to extend functionality */
36
- private fileDataToServerRoutes;
37
- generateServerRoutesFile(fileData: FileNode[]): string;
38
- /** Generate routes.ts content */
19
+ /** Generate client routes with root layout and 404 support */
39
20
  generateRoutesFile(fileData: FileNode[]): string;
40
- /** Generate route type file (route paths as union) */
21
+ /** Generate SSR server routes with modulePath, root layout & 404 */
22
+ generateServerRoutesFile(fileData: FileNode[]): string;
23
+ /** Helper: recursively generate SSR routes for folders and files */
24
+ private fileDataToServerRoutes;
25
+ /** ---------------- TypeScript Route Type Helpers ---------------- */
26
+ /** Generate route paths as TypeScript union */
41
27
  generateTypesFile(fileData: FileNode[]): string;
28
+ private collectPaths;
29
+ private buildTypeUnion;
42
30
  }
43
31
  export {};
44
32
  //# sourceMappingURL=RouteGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RouteGenerator.d.ts","sourceRoot":"","sources":["../../src/core/RouteGenerator.ts"],"names":[],"mappings":"AAYA,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,SAAS,CAA0B;IAI3C,6EAA6E;IAC7E,OAAO,CAAC,gBAAgB;IAIxB,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAI5B,mCAAmC;IACnC,OAAO,CAAC,QAAQ;IAMhB,mDAAmD;IACnD,OAAO,CAAC,SAAS;IAQjB,8CAA8C;IAC9C,OAAO,CAAC,eAAe;IA6BvB,gFAAgF;IAChF,OAAO,CAAC,oBAAoB;IAiD5B,qCAAqC;IACrC,OAAO,CAAC,eAAe;IAsBvB,gEAAgE;IAChE,OAAO,CAAC,gBAAgB;IAexB,kDAAkD;IAClD,OAAO,CAAC,YAAY;IA0BpB,yCAAyC;IACzC,OAAO,CAAC,cAAc;IAStB,6EAA6E;IAE7E,OAAO,CAAC,0BAA0B;IAwClC,yDAAyD;IACzD,OAAO,CAAC,qBAAqB;IA0C7B,8DAA8D;IAC9D,OAAO,CAAC,sBAAsB;IAYvB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM;IAsB7D,iCAAiC;IAC1B,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM;IAoBvD,sDAAsD;IAC/C,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM;CASvD"}
1
+ {"version":3,"file":"RouteGenerator.d.ts","sourceRoot":"","sources":["../../src/core/RouteGenerator.ts"],"names":[],"mappings":"AAaA,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,SAAS,CAA0B;IAI3C,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,oBAAoB;IA+C5B,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,gBAAgB;IAexB,8DAA8D;IACvD,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM;IAuDvD,oEAAoE;IAC7D,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM;IAyD7D,oEAAoE;IACpE,OAAO,CAAC,sBAAsB;IAyF9B,sEAAsE;IAEtE,+CAA+C;IACxC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM;IAUtD,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,cAAc;CAQvB"}
@@ -3,21 +3,17 @@ export class RouteGenerator {
3
3
  topLevelImports = [];
4
4
  importSet = new Set();
5
5
  // ---------------- Helpers ----------------
6
- /** Convert file/folder name to route segment, replacing [slug] with :slug */
7
6
  normalizeSegment(name) {
8
7
  return name.replace(/\[([^\]]+)\]/g, ":$1").toLowerCase();
9
8
  }
10
- /** Convert file/folder name to type segment, replacing [slug] with {string} */
11
9
  normalizeTypeSegment(name) {
12
10
  return name.replace(/\[([^\]]+)\]/g, "{string}");
13
11
  }
14
- /** Convert string to PascalCase */
15
12
  toPascal(str) {
16
13
  return str
17
14
  .replace(/\[|\]/g, "")
18
15
  .replace(/(^\w|[-_]\w)/g, (m) => m.replace(/[-_]/, "").toUpperCase());
19
16
  }
20
- /** Add import statement if not already imported */
21
17
  addImport(file, importName) {
22
18
  if (!this.importSet.has(file.relative_path)) {
23
19
  const importPath = `./${file.relative_path.replace(/^src[\/\\]/, "")}`;
@@ -25,10 +21,8 @@ export class RouteGenerator {
25
21
  this.importSet.add(file.relative_path);
26
22
  }
27
23
  }
28
- /** Generate import name with folder prefix */
29
24
  getPrefixedName(file, parentPath, suffix) {
30
25
  const baseName = file.name.replace(/\.[jt]sx?$/, "");
31
- // Only add folder prefix if file is layout or loading
32
26
  if (baseName.toLowerCase() === "layout" ||
33
27
  baseName.toLowerCase() === "loading") {
34
28
  let segments = parentPath.split("/").filter(Boolean).map(this.toPascal);
@@ -37,39 +31,39 @@ export class RouteGenerator {
37
31
  }
38
32
  return ((segments[segments.length - 1] || this.toPascal(baseName)) + suffix);
39
33
  }
40
- // For normal files, just PascalCase without suffix
41
34
  if (baseName.toLowerCase() === "index" && parentPath) {
42
35
  const segments = parentPath.split("/").filter(Boolean).map(this.toPascal);
43
- return segments.join("") + suffix; // optional suffix for index if needed
36
+ return segments.join("") + suffix;
44
37
  }
45
38
  return this.toPascal(baseName) + suffix;
46
39
  }
47
40
  // ---------------- Route Creation ----------------
48
- /** Create route object for a directory (may contain layout/loading/children) */
49
41
  createDirectoryRoute(file, isChild) {
50
42
  const route = { path: this.normalizeSegment(file.name) };
51
43
  const layoutFile = file.children?.find((f) => /^layout\.(tsx|jsx|ts|js)$/i.test(f.name));
52
- let layoutName = null;
53
44
  if (layoutFile) {
54
- layoutName = this.getPrefixedName(layoutFile, file.relative_path, "Layout");
45
+ const layoutName = this.getPrefixedName(layoutFile, file.relative_path, "Layout");
55
46
  this.addImport(layoutFile, layoutName);
56
47
  route.element = `React.createElement(${layoutName})`;
57
48
  }
58
- const loadingFile = file.children?.find((f) => /^loading\.(tsx|jsx|ts|js)$/i.test(f.name));
59
- let loadingName = null;
60
- if (loadingFile) {
61
- loadingName = this.getPrefixedName(loadingFile, file.relative_path, "Loading");
62
- this.addImport(loadingFile, loadingName);
63
- }
64
49
  const children = file.children?.filter((f) => !/^layout\.(tsx|jsx|ts|js)$/i.test(f.name) &&
65
- !/^loading\.(tsx|jsx|ts|js)$/i.test(f.name));
50
+ !/^404\.(tsx|jsx|ts|js)$/i.test(f.name));
66
51
  if (children?.length) {
67
- // nested = true for children
68
- route.children = this.fileDataToRoutes(children, route.path, true, loadingName);
52
+ route.children = this.fileDataToRoutes(children, route.path, true);
53
+ }
54
+ // Lägg till folder 404
55
+ const errorFile = file.children?.find((f) => /^404\.(tsx|jsx|ts|js)$/i.test(f.name));
56
+ if (errorFile) {
57
+ const errorName = this.getPrefixedName(errorFile, file.relative_path, "404");
58
+ this.addImport(errorFile, errorName);
59
+ route.children = route.children || [];
60
+ route.children.push({
61
+ path: "*",
62
+ element: `React.createElement(${errorName})`,
63
+ });
69
64
  }
70
65
  return route;
71
66
  }
72
- /** Create route object for a file */
73
67
  createFileRoute(file, parentPath, isChild, folderLoadingName) {
74
68
  const nameWithoutExt = file.name.replace(/\.[jt]sx?$/, "");
75
69
  const isIndex = nameWithoutExt.toLowerCase() === "index";
@@ -82,16 +76,162 @@ export class RouteGenerator {
82
76
  path: pathSegment,
83
77
  element: `React.createElement(${importName})`,
84
78
  };
85
- // ---------------- Route Recursion ----------------
86
79
  }
87
- /** Recursively convert FileNode array into RouteConfig array */
88
80
  fileDataToRoutes(files, parentPath = "", isChild = false, folderLoadingName = null) {
89
81
  return files.map((file) => file.isDirectory
90
- ? this.createDirectoryRoute(file, isChild) // pass isChild
82
+ ? this.createDirectoryRoute(file, isChild)
91
83
  : this.createFileRoute(file, parentPath, isChild, folderLoadingName));
92
84
  }
93
- // ---------------- TypeScript Route Type Helpers ----------------
94
- /** Collect all route paths for type generation */
85
+ // ---------------- PUBLIC METHODS ----------------
86
+ /** Generate client routes with root layout and 404 support */
87
+ generateRoutesFile(fileData) {
88
+ this.topLevelImports = [];
89
+ this.importSet.clear();
90
+ const rootLayoutFile = fileData.find((f) => /^layout\.(tsx|jsx|ts|js)$/i.test(f.name));
91
+ const root404File = fileData.find((f) => /^404\.(tsx|jsx|ts|js)$/i.test(f.name));
92
+ let rootElement = "React.Fragment";
93
+ if (rootLayoutFile) {
94
+ const layoutName = this.getPrefixedName(rootLayoutFile, "", "Layout");
95
+ this.addImport(rootLayoutFile, layoutName);
96
+ rootElement = layoutName;
97
+ }
98
+ const normalFiles = fileData.filter((f) => !/^layout\.(tsx|jsx|ts|js)$/i.test(f.name) &&
99
+ !/^404\.(tsx|jsx|ts|js)$/i.test(f.name));
100
+ const routes = this.fileDataToRoutes(normalFiles);
101
+ if (root404File) {
102
+ const errorName = this.getPrefixedName(root404File, "", "404");
103
+ this.addImport(root404File, errorName);
104
+ routes.push({
105
+ path: "*",
106
+ element: `React.createElement(${errorName})`,
107
+ });
108
+ }
109
+ return `//* AUTO GENERATED: DO NOT EDIT
110
+ import React from 'react';
111
+ ${this.topLevelImports.join("\n")}
112
+ import type { RouteObject } from 'react-router-dom';
113
+
114
+ const routes: RouteObject[] = [
115
+ {
116
+ path: "/",
117
+ element: React.createElement(${rootElement}),
118
+ children: ${JSON.stringify(routes, null, 2).replace(/"React\.createElement\(([\s\S]*?)\)"/g, (_, inner) => `React.createElement(${inner})`)}
119
+ }
120
+ ];
121
+
122
+ export default routes;
123
+ `;
124
+ }
125
+ /** Generate SSR server routes with modulePath, root layout & 404 */
126
+ generateServerRoutesFile(fileData) {
127
+ this.topLevelImports = [];
128
+ this.importSet.clear();
129
+ const rootLayoutFile = fileData.find((f) => /^layout\.(tsx|jsx|ts|js)$/i.test(f.name));
130
+ const root404File = fileData.find((f) => /^404\.(tsx|jsx|ts|js)$/i.test(f.name));
131
+ let rootElement = "React.Fragment";
132
+ if (rootLayoutFile) {
133
+ const layoutName = this.getPrefixedName(rootLayoutFile, "", "Layout");
134
+ this.addImport(rootLayoutFile, layoutName);
135
+ rootElement = layoutName;
136
+ }
137
+ const normalFiles = fileData.filter((f) => !/^layout\.(tsx|jsx|ts|js)$/i.test(f.name) &&
138
+ !/^404\.(tsx|jsx|ts|js)$/i.test(f.name));
139
+ const routes = this.fileDataToServerRoutes(normalFiles);
140
+ if (root404File) {
141
+ const errorName = this.getPrefixedName(root404File, "", "NotFound");
142
+ this.addImport(root404File, errorName);
143
+ routes.push({
144
+ path: "*",
145
+ element: `React.createElement(${errorName})`,
146
+ modulePath: path
147
+ .resolve(process.cwd(), root404File.relative_path)
148
+ .replace(/\\/g, "/"),
149
+ });
150
+ }
151
+ return `//* AUTO GENERATED: DO NOT EDIT
152
+ import React from 'react';
153
+ ${this.topLevelImports.join("\n")}
154
+
155
+ const serverRoutes: any[] = [
156
+ {
157
+ path: "/",
158
+ element: React.createElement(${rootElement}),
159
+ children: ${JSON.stringify(routes, null, 2).replace(/"React\.createElement\(([\s\S]*?)\)"/g, (_, inner) => `React.createElement(${inner})`)}
160
+ }
161
+ ];
162
+
163
+ export default serverRoutes;
164
+ `;
165
+ }
166
+ /** Helper: recursively generate SSR routes for folders and files */
167
+ fileDataToServerRoutes(files, parentPath = "", isChild = false) {
168
+ return files.map((file) => {
169
+ if (file.isDirectory) {
170
+ const route = {
171
+ path: this.normalizeSegment(file.name),
172
+ };
173
+ // Layout
174
+ const layoutFile = file.children?.find((f) => /^layout\.(tsx|jsx|ts|js)$/i.test(f.name));
175
+ if (layoutFile) {
176
+ const layoutName = this.getPrefixedName(layoutFile, file.relative_path, "Layout");
177
+ this.addImport(layoutFile, layoutName);
178
+ route.element = `React.createElement(${layoutName})`;
179
+ route.modulePath = path
180
+ .resolve(process.cwd(), layoutFile.relative_path)
181
+ .replace(/\\/g, "/");
182
+ }
183
+ // Children
184
+ const children = file.children?.filter((f) => !/^layout\.(tsx|jsx|ts|js)$/i.test(f.name) &&
185
+ !/^404\.(tsx|jsx|ts|js)$/i.test(f.name));
186
+ if (children?.length) {
187
+ route.children = this.fileDataToServerRoutes(children, route.path, true);
188
+ route.children.sort((a, b) => a.path === "" ? -1 : b.path === "" ? 1 : 0);
189
+ }
190
+ // Folder 404
191
+ const errorFile = file.children?.find((f) => /^404\.(tsx|jsx|ts|js)$/i.test(f.name));
192
+ if (errorFile) {
193
+ const errorName = this.getPrefixedName(errorFile, file.relative_path, "NotFound");
194
+ this.addImport(errorFile, errorName);
195
+ route.children = route.children || [];
196
+ route.children.push({
197
+ path: "*",
198
+ element: `React.createElement(${errorName})`,
199
+ modulePath: path
200
+ .resolve(process.cwd(), errorFile.relative_path)
201
+ .replace(/\\/g, "/"),
202
+ });
203
+ }
204
+ return route;
205
+ }
206
+ else {
207
+ // File
208
+ const nameWithoutExt = file.name.replace(/\.[jt]sx?$/, "");
209
+ const isIndex = nameWithoutExt.toLowerCase() === "index";
210
+ let pathSegment = isIndex ? "" : this.normalizeSegment(nameWithoutExt);
211
+ if (!isChild && parentPath)
212
+ pathSegment = `${parentPath}/${pathSegment}`;
213
+ const importName = this.getPrefixedName(file, parentPath, "");
214
+ this.addImport(file, importName);
215
+ return {
216
+ path: pathSegment,
217
+ element: `React.createElement(${importName})`,
218
+ modulePath: path
219
+ .resolve(process.cwd(), file.relative_path)
220
+ .replace(/\\/g, "/"),
221
+ };
222
+ }
223
+ });
224
+ }
225
+ /** ---------------- TypeScript Route Type Helpers ---------------- */
226
+ /** Generate route paths as TypeScript union */
227
+ generateTypesFile(fileData) {
228
+ const paths = this.collectPaths(fileData, "");
229
+ const union = this.buildTypeUnion(paths);
230
+ return `// AUTO-GENERATED: DO NOT EDIT
231
+ export type FileRoutes =
232
+ ${union};
233
+ `;
234
+ }
95
235
  collectPaths(files, prefix = "") {
96
236
  let result = [];
97
237
  for (const file of files) {
@@ -116,7 +256,6 @@ export class RouteGenerator {
116
256
  }
117
257
  return result;
118
258
  }
119
- /** Build TypeScript union type string */
120
259
  buildTypeUnion(paths) {
121
260
  const normalized = [...new Set(paths)]
122
261
  .map((p) => p.replace(/\/+/g, "/"))
@@ -124,106 +263,5 @@ export class RouteGenerator {
124
263
  .sort();
125
264
  return normalized.map((p) => ` | "${p}"`).join("\n");
126
265
  }
127
- /** ---------------- Server specific functions for AaExJS ---------------- */
128
- createServerDirectoryRoute(file, isChild) {
129
- const route = { path: this.normalizeSegment(file.name) };
130
- const layoutFile = file.children?.find((f) => /^layout\.(tsx|jsx|ts|js)$/i.test(f.name));
131
- let layoutName = null;
132
- if (layoutFile) {
133
- layoutName = this.getPrefixedName(layoutFile, file.relative_path, "Layout");
134
- this.addImport(layoutFile, layoutName);
135
- route.element = `React.createElement(${layoutName})`;
136
- route.modulePath = path
137
- .resolve(process.cwd(), layoutFile.relative_path)
138
- .replace(/\\/g, "/");
139
- }
140
- const children = file.children?.filter((f) => !/^layout\.(tsx|jsx|ts|js)$/i.test(f.name) &&
141
- !/^loading\.(tsx|jsx|ts|js)$/i.test(f.name));
142
- if (children?.length) {
143
- // nested = true for children
144
- //sorting dosnt work, might need to be moved?
145
- route.children = this.fileDataToServerRoutes(children, route.path, true);
146
- route.children.sort((a, b) => a.path === "" ? -1 : b.path === "" ? 1 : 0);
147
- }
148
- return route;
149
- }
150
- /** Creates server route with the module path included */
151
- createServerFileRoute(file, parentPath, isChild) {
152
- const fileName = file.name;
153
- // Build route path
154
- const nameWithoutExt = fileName.replace(/\.[jt]sx?$/, "");
155
- const isIndex = nameWithoutExt.toLowerCase() === "index";
156
- // const isRootLayout = nameWithoutExt.toLowerCase() === "rootlayout"
157
- let pathSegment = isIndex ? "" : this.normalizeSegment(nameWithoutExt);
158
- if (!isChild && parentPath) {
159
- pathSegment = `${parentPath}/${pathSegment}`;
160
- }
161
- // Get import identifier
162
- const importName = this.getPrefixedName(file, parentPath, "");
163
- // Static import for server
164
- this.addImport(file, importName);
165
- // Create ABSOLUTE FILE PATH
166
- //
167
- // Example:
168
- // projectRoot = /Users/me/myapp
169
- // file.relative_path = src/pages/test/index.tsx
170
- //
171
- // → /Users/me/myapp/src/pages/test/index.tsx
172
- const absolutePath = path.resolve(process.cwd(), file.relative_path);
173
- // Normalize for Node ESM (Windows requires forward slashes)
174
- const normalizedAbsolutePath = absolutePath.replace(/\\/g, "/");
175
- return {
176
- path: pathSegment,
177
- element: `React.createElement(${importName})`,
178
- modulePath: normalizedAbsolutePath,
179
- };
180
- }
181
- /**Builds routes usable by vite ssr to extend functionality */
182
- fileDataToServerRoutes(files, parentPath = "", isChild = false) {
183
- return files.map((file) => {
184
- return file.isDirectory
185
- ? this.createServerDirectoryRoute(file, isChild)
186
- : this.createServerFileRoute(file, parentPath, isChild);
187
- });
188
- }
189
- generateServerRoutesFile(fileData) {
190
- this.topLevelImports = [];
191
- this.importSet.clear();
192
- const routes = this.fileDataToServerRoutes(fileData);
193
- return `//* AUTO GENERATED: DO NOT EDIT
194
- import React from 'react';
195
- ${this.topLevelImports.join("\n")}
196
-
197
-
198
- const serverRoutes: any[] = ${JSON.stringify(routes, null, 2).replace(/"React\.createElement\(([\s\S]*?)\)"/g, (_, inner) => `${inner}`)};
199
-
200
- export default serverRoutes;
201
- `;
202
- }
203
- // ---------------- PUBLIC METHODS ----------------
204
- /** Generate routes.ts content */
205
- generateRoutesFile(fileData) {
206
- this.topLevelImports = [];
207
- this.importSet.clear();
208
- const routes = this.fileDataToRoutes(fileData);
209
- return `//* AUTO GENERATED: DO NOT EDIT
210
- import React from 'react';
211
- ${this.topLevelImports.join("\n")}
212
- import type { RouteObject } from 'react-router-dom';
213
-
214
- const routes: RouteObject[] = ${JSON.stringify(routes, null, 2).replace(/"React\.createElement\(([\s\S]*?)\)"/g, (_, inner) => `React.createElement(${inner})`)};
215
-
216
- export default routes;
217
- `;
218
- }
219
- /** Generate route type file (route paths as union) */
220
- generateTypesFile(fileData) {
221
- const paths = this.collectPaths(fileData, "");
222
- const union = this.buildTypeUnion(paths);
223
- return `// AUTO-GENERATED: DO NOT EDIT
224
- export type FileRoutes =
225
- ${union};
226
- `;
227
- }
228
266
  }
229
267
  //# sourceMappingURL=RouteGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RouteGenerator.js","sourceRoot":"","sources":["../../src/core/RouteGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouteGenerator.js","sourceRoot":"","sources":["../../src/core/RouteGenerator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aaex-file-router",
3
- "version": "1.6.4",
3
+ "version": "1.7.1",
4
4
  "description": "A file-based routing system for React projects that automatically generates routes from your file structure. Similar to Next.js App Router or Remix file conventions.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",