aaex-file-router 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -6
- package/dist/components/FileLink.d.ts +8 -0
- package/dist/components/FileLink.d.ts.map +1 -0
- package/dist/components/FileLink.js +6 -0
- package/dist/components/FileLink.js.map +1 -0
- package/dist/core/FileScanner.js +1 -1
- package/dist/core/FileScanner.js.map +1 -1
- package/dist/core/RouteGenerator.d.ts +6 -0
- package/dist/core/RouteGenerator.d.ts.map +1 -1
- package/dist/core/RouteGenerator.js +30 -0
- package/dist/core/RouteGenerator.js.map +1 -1
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -0
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/pages/test/about.d.ts +1 -0
- package/dist/pages/test/about.d.ts.map +1 -0
- package/dist/pages/test/about.js +2 -0
- package/dist/pages/test/about.js.map +1 -0
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +14 -12
- package/dist/plugin.js.map +1 -1
- package/dist/test/index.js +3 -6
- package/dist/test/index.js.map +1 -1
- package/package.json +14 -5
- package/dist/test/routes.d.ts +0 -4
- package/dist/test/routes.d.ts.map +0 -1
- package/dist/test/routes.js +0 -20
- package/dist/test/routes.js.map +0 -1
- package/dist/test/routes.ts +0 -26
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.0
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
## V. 1.1.0
|
|
6
|
+
Added type safe <FileLink> component and auto generation of the FileRoutes type for it to use
|
|
8
7
|
|
|
9
8
|
## Features
|
|
10
9
|
|
|
@@ -13,6 +12,7 @@ Fixed issue that required --legacy-peer-deps flag for installation
|
|
|
13
12
|
- **Static & Lazy Loading**: Top-level routes use static imports, nested routes use lazy loading
|
|
14
13
|
- **Hot Reload**: Vite plugin watches for file changes and regenerates routes automatically
|
|
15
14
|
- **TypeScript Support**: Full TypeScript support with generated route types
|
|
15
|
+
- **Type safe link component**: Link component that knows what routes are available
|
|
16
16
|
|
|
17
17
|
## Installation
|
|
18
18
|
|
|
@@ -164,6 +164,47 @@ export default function DashboardLayout() {
|
|
|
164
164
|
|
|
165
165
|
All routes in `pages/dashboard/*` will render inside this layout.
|
|
166
166
|
|
|
167
|
+
|
|
168
|
+
## FileLink component
|
|
169
|
+
|
|
170
|
+
The FileLink component is a type safe wrapper for the Link component in react router that uses an autogenerated type to check which routes are available.
|
|
171
|
+
|
|
172
|
+
## Notice!
|
|
173
|
+
At the moment it can only do the basic routing where the "to" prop is a string.
|
|
174
|
+
React routers normal Link still works in cases where the advanced functionality is more important than type safe routing.
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
## Usage
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
```ts
|
|
181
|
+
// src/routeTypes.ts
|
|
182
|
+
// * AUTO GENERATED: DO NOT EDIT
|
|
183
|
+
|
|
184
|
+
//this file is auto generated along with the route definition file
|
|
185
|
+
export type FileRoutes = "/" | "test";
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
```tsx
|
|
190
|
+
//src/pages/index.tsx
|
|
191
|
+
import {FileLink} from "aaex-file-router"
|
|
192
|
+
import type { FileRoutes } from "../routeTypes"
|
|
193
|
+
|
|
194
|
+
export default function Home(){
|
|
195
|
+
return <>
|
|
196
|
+
Hello Home!
|
|
197
|
+
{/* FileRoutes is optional and not required it will work fine with any string if not passed */}
|
|
198
|
+
|
|
199
|
+
<FileLink<FileRoutes> to="test">Test safe</FileLink></>
|
|
200
|
+
|
|
201
|
+
//or
|
|
202
|
+
//no type safety
|
|
203
|
+
<FileLink to="some-route">Non safe</FileLink>
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
|
|
167
208
|
## API Reference
|
|
168
209
|
|
|
169
210
|
### FileScanner
|
|
@@ -221,7 +262,7 @@ export default defineConfig({
|
|
|
221
262
|
## Common Patterns
|
|
222
263
|
|
|
223
264
|
### Shared Layout
|
|
224
|
-
```
|
|
265
|
+
```sh
|
|
225
266
|
pages/
|
|
226
267
|
├── layout.tsx # Wraps entire app
|
|
227
268
|
├── index.tsx
|
|
@@ -229,7 +270,7 @@ pages/
|
|
|
229
270
|
```
|
|
230
271
|
|
|
231
272
|
### Nested Layouts
|
|
232
|
-
```
|
|
273
|
+
```sh
|
|
233
274
|
pages/
|
|
234
275
|
├── layout.tsx # Root layout
|
|
235
276
|
├── admin/
|
|
@@ -239,7 +280,7 @@ pages/
|
|
|
239
280
|
```
|
|
240
281
|
|
|
241
282
|
### Route Groups Without Layout
|
|
242
|
-
```
|
|
283
|
+
```sh
|
|
243
284
|
pages/
|
|
244
285
|
├── blog/
|
|
245
286
|
│ ├── post.tsx # Routes as /blog/post (no grouping)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface FileLinkProps<RouteType extends string = string> {
|
|
3
|
+
to: RouteType;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function FileLink<RouteType extends string = string>({ to, children, }: FileLinkProps<RouteType>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=FileLink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileLink.d.ts","sourceRoot":"","sources":["../../src/components/FileLink.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,aAAa,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IACvD,EAAE,EAAE,SAAS,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,QAAQ,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,EAC1D,EAAE,EACF,QAAQ,GACT,EAAE,aAAa,CAAC,SAAS,CAAC,2CAE1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileLink.js","sourceRoot":"","sources":["../../src/components/FileLink.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAOxC,MAAM,UAAU,QAAQ,CAAoC,EAC1D,EAAE,EACF,QAAQ,GACiB;IACzB,OAAO,KAAC,IAAI,IAAC,EAAE,EAAE,EAAE,YAAG,QAAQ,GAAQ,CAAC;AACzC,CAAC"}
|
package/dist/core/FileScanner.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileScanner.js","sourceRoot":"","sources":["../../src/core/FileScanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,QAAQ,IAAI,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"FileScanner.js","sourceRoot":"","sources":["../../src/core/FileScanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AAUxB,MAAM,OAAO,WAAW;IACtB,QAAQ,CAAS;IACjB,eAAe,GAAa,EAAE,CAAC;IAE/B,YAAY,SAAiB;QAC3B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,UAAU,CAAC,GAAW;QAClC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,IAAI,MAAM,GAAa,EAAE,CAAC;QAE1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,kDAAkD;YACjD,KAAa,CAAC,UAAU,GAAG,GAAG,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnB,sDAAsD;YACtD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe,CAAC,KAAe;QAC3C,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAE,IAAY,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhE,6EAA6E;YAC7E,MAAM,QAAQ,GAAG,IAAI;iBAClB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC;iBACjC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;iBACnB,IAAI,EAAE,CAAC;YAEV,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,8DAA8D;gBAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAE,IAAY,CAAC,UAAU,KAAK,QAAQ,CAChD,CAAC;gBAEF,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW;oBACT,gEAAgE;oBAChE,IAAI;yBACD,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAG,IAAY,CAAC,UAAU,CAAC;yBACjD,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG;oBAC9B,aAAa,EAAE,QAAQ;oBACvB,WAAW,EAAE,IAAI;oBACjB,QAAQ,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;iBAC/C,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW;gBACT,gEAAgE;gBAChE,IAAI;qBACD,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAG,IAAY,CAAC,UAAU,CAAC;qBACjD,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG;gBAC9B,aAAa,EAAE,QAAQ;gBACvB,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,aAAa;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAe,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -18,5 +18,11 @@ export declare class RouteGenerator {
|
|
|
18
18
|
* @returns Complete routes file content ready to be written to disk
|
|
19
19
|
*/
|
|
20
20
|
generateComponentsMap(fileData: FileData[]): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Generates a TypeScript definition file exporting a union type of all route paths
|
|
23
|
+
* @param fileData - FileData tree from FileScanner
|
|
24
|
+
* @returns Type definition file content as string
|
|
25
|
+
*/
|
|
26
|
+
generateRoutesTypeDef(fileData: FileData[]): Promise<string>;
|
|
21
27
|
}
|
|
22
28
|
//# sourceMappingURL=RouteGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteGenerator.d.ts","sourceRoot":"","sources":["../../src/core/RouteGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC,qBAAa,cAAc;IACzB,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,YAAY;IAGpB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA6KxB;;;;;OAKG;IACU,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"RouteGenerator.d.ts","sourceRoot":"","sources":["../../src/core/RouteGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC,qBAAa,cAAc;IACzB,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,YAAY;IAGpB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA6KxB;;;;;OAKG;IACU,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BzE;;;;OAIG;IACU,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CA8B1E"}
|
|
@@ -166,5 +166,35 @@ export default routes;
|
|
|
166
166
|
`;
|
|
167
167
|
return mapString;
|
|
168
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Generates a TypeScript definition file exporting a union type of all route paths
|
|
171
|
+
* @param fileData - FileData tree from FileScanner
|
|
172
|
+
* @returns Type definition file content as string
|
|
173
|
+
*/
|
|
174
|
+
async generateRoutesTypeDef(fileData) {
|
|
175
|
+
// Reset state
|
|
176
|
+
this.topLevelImports = [];
|
|
177
|
+
this.importSet = new Set();
|
|
178
|
+
this.processedFiles = new Set();
|
|
179
|
+
const routes = this.fileDataToRoutes(fileData);
|
|
180
|
+
const routePaths = [];
|
|
181
|
+
for (let route of routes) {
|
|
182
|
+
routePaths.push(route.path);
|
|
183
|
+
if (route.children?.length) {
|
|
184
|
+
route.children.map((child) => {
|
|
185
|
+
if (child.path != "") {
|
|
186
|
+
routePaths.push(`${route.path}/${child.path}`);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const paths = Array.from(new Set(routePaths))
|
|
192
|
+
.map((p) => `"${p}"`)
|
|
193
|
+
.join(" | ");
|
|
194
|
+
return `// * AUTO GENERATED: DO NOT EDIT
|
|
195
|
+
|
|
196
|
+
export type FileRoutes = ${paths};
|
|
197
|
+
`;
|
|
198
|
+
}
|
|
169
199
|
}
|
|
170
200
|
//# 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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,gDAAgD;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { RouteGenerator } from './core/RouteGenerator.js';
|
|
3
|
-
export { aaexFileRouter } from './plugin.js';
|
|
4
|
-
export type { VitePluginOptions } from './plugin.js';
|
|
1
|
+
export { FileLink } from "./components/FileLink.js";
|
|
5
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { RouteGenerator } from './core/RouteGenerator.js';
|
|
3
|
-
// export type { FileData } from './core/types';
|
|
4
|
-
export { aaexFileRouter } from './plugin.js';
|
|
1
|
+
export { FileLink } from "./components/FileLink.js";
|
|
5
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=about.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"about.d.ts","sourceRoot":"","sources":["../../../src/pages/test/about.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"about.js","sourceRoot":"","sources":["../../../src/pages/test/about.tsx"],"names":[],"mappings":""}
|
package/dist/plugin.d.ts
CHANGED
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAM9B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAM9B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAmDtE"}
|
package/dist/plugin.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { promises as fs } from
|
|
2
|
-
import path from
|
|
3
|
-
import { FileScanner } from
|
|
4
|
-
import { RouteGenerator } from
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { FileScanner } from "./core/FileScanner.js";
|
|
4
|
+
import { RouteGenerator } from "./core/RouteGenerator.js";
|
|
5
5
|
/**
|
|
6
6
|
* Vite plugin that auto-generates routes when page files change
|
|
7
7
|
* Watches the pages directory and regenerates routes.ts on file create/delete
|
|
8
8
|
*/
|
|
9
9
|
export function aaexFileRouter(options = {}) {
|
|
10
|
-
const pagesDir = options.pagesDir ||
|
|
11
|
-
const outputFile = options.outputFile ||
|
|
10
|
+
const pagesDir = options.pagesDir || "./src/pages";
|
|
11
|
+
const outputFile = options.outputFile || "./src/routes.ts";
|
|
12
12
|
let scanner;
|
|
13
13
|
let generator;
|
|
14
14
|
return {
|
|
15
|
-
name:
|
|
16
|
-
apply:
|
|
15
|
+
name: "aaex-file-router",
|
|
16
|
+
apply: "serve", // Only run in dev mode
|
|
17
17
|
configResolved() {
|
|
18
18
|
scanner = new FileScanner(pagesDir);
|
|
19
19
|
generator = new RouteGenerator();
|
|
@@ -21,9 +21,9 @@ export function aaexFileRouter(options = {}) {
|
|
|
21
21
|
async configureServer(server) {
|
|
22
22
|
// Watch the pages directory for changes
|
|
23
23
|
server.watcher.add(path.resolve(process.cwd(), pagesDir));
|
|
24
|
-
server.watcher.on(
|
|
24
|
+
server.watcher.on("all", async (event, filePath) => {
|
|
25
25
|
// Only regenerate on file add/unlink events
|
|
26
|
-
if (event ===
|
|
26
|
+
if (event === "add" || event === "unlink") {
|
|
27
27
|
try {
|
|
28
28
|
console.log(`📄 [aaex-file-router] ${event}: ${filePath}`);
|
|
29
29
|
// Regenerate routes
|
|
@@ -31,12 +31,14 @@ export function aaexFileRouter(options = {}) {
|
|
|
31
31
|
generator = new RouteGenerator();
|
|
32
32
|
const fileData = await scanner.get_file_data();
|
|
33
33
|
const routesCode = await generator.generateComponentsMap(fileData);
|
|
34
|
+
const routesType = await generator.generateRoutesTypeDef(fileData);
|
|
34
35
|
// Write routes file
|
|
35
|
-
await fs.writeFile(outputFile, routesCode,
|
|
36
|
+
await fs.writeFile(outputFile, routesCode, "utf-8");
|
|
37
|
+
await fs.writeFile("src/routeTypes.ts", routesType, "utf-8");
|
|
36
38
|
console.log(`✅ [aaex-file-router] Routes regenerated at ${outputFile}`);
|
|
37
39
|
}
|
|
38
40
|
catch (error) {
|
|
39
|
-
console.error(
|
|
41
|
+
console.error("❌ [aaex-file-router] Error regenerating routes:", error);
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
});
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAO1D;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,UAA6B,EAAE;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC;IAE3D,IAAI,OAAoB,CAAC;IACzB,IAAI,SAAyB,CAAC;IAE9B,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,OAAO,EAAE,uBAAuB;QAEvC,cAAc;YACZ,OAAO,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;YACpC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,MAAM;YAC1B,wCAAwC;YACxC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;YAE1D,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACjD,4CAA4C;gBAC5C,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC1C,IAAI,CAAC;wBACH,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC;wBAE3D,oBAAoB;wBACpB,OAAO,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;wBACpC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;wBAEjC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;wBAC/C,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;wBACnE,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;wBAEnE,oBAAoB;wBACpB,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACpD,MAAM,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBAE7D,OAAO,CAAC,GAAG,CACT,8CAA8C,UAAU,EAAE,CAC3D,CAAC;oBACJ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CACX,iDAAiD,EACjD,KAAK,CACN,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/test/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { fileURLToPath } from "url";
|
|
2
2
|
import { FileScanner } from "../core/FileScanner.js";
|
|
3
3
|
import { RouteGenerator } from "../core/RouteGenerator.js";
|
|
4
|
-
import { promises as fs } from "fs";
|
|
5
4
|
import path from "path";
|
|
6
5
|
const __filename = fileURLToPath(import.meta.url);
|
|
7
6
|
const __dirname = path.dirname(__filename);
|
|
@@ -12,11 +11,9 @@ async function generateRoutes() {
|
|
|
12
11
|
const fileData = await scanner.get_file_data();
|
|
13
12
|
const generator = new RouteGenerator();
|
|
14
13
|
const routeMap = await generator.generateComponentsMap(fileData);
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
await fs.writeFile(filePath, routeMap, "utf-8");
|
|
19
|
-
console.log(`Routes file created at: ${filePath}`);
|
|
14
|
+
console.log("Route map: ", routeMap);
|
|
15
|
+
const routType = generator.generateRoutesTypeDef(fileData);
|
|
16
|
+
console.log(routType);
|
|
20
17
|
}
|
|
21
18
|
catch (error) {
|
|
22
19
|
console.error("Error generating routes:", error);
|
package/dist/test/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC;AAE9B,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QAE/C,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAGjE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;QAEpC,MAAM,QAAQ,GAAG,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE3D,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAGxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,cAAc,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aaex-file-router",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
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
|
"scripts": {
|
|
@@ -13,6 +13,11 @@
|
|
|
13
13
|
"router",
|
|
14
14
|
"vite-plugin"
|
|
15
15
|
],
|
|
16
|
+
|
|
17
|
+
"exports":{
|
|
18
|
+
".": "./dist/index.js",
|
|
19
|
+
"./core": "./dist/core/index.js"
|
|
20
|
+
},
|
|
16
21
|
"author": "TmRAaEx",
|
|
17
22
|
"license": "MIT",
|
|
18
23
|
"type": "module",
|
|
@@ -21,19 +26,23 @@
|
|
|
21
26
|
"README.md",
|
|
22
27
|
"LICENCE"
|
|
23
28
|
],
|
|
29
|
+
"types": "dist/index.d.ts",
|
|
24
30
|
"devDependencies": {
|
|
25
31
|
"@types/node": "^24.10.1",
|
|
32
|
+
"@types/react": "^19.2.7",
|
|
33
|
+
"@types/react-dom": "^19.2.3",
|
|
34
|
+
"react": "^19.2.0",
|
|
35
|
+
"react-dom": "^19.2.0",
|
|
36
|
+
"react-router-dom": "^7.9.6",
|
|
26
37
|
"typescript": "^5.9.3",
|
|
27
38
|
"vite": "^7.2.4",
|
|
28
39
|
"vite-plugin-dts": "^4.5.4"
|
|
29
40
|
},
|
|
30
|
-
|
|
31
|
-
"fs": "^0.0.1-security"
|
|
32
|
-
},
|
|
41
|
+
|
|
33
42
|
"peerDependencies": {
|
|
34
43
|
"react": "^19.2.0",
|
|
35
44
|
"react-dom": "^19.2.0",
|
|
36
45
|
"react-router-dom": "^7.9.6",
|
|
37
|
-
"vite": "^
|
|
46
|
+
"vite": "^7.2.4"
|
|
38
47
|
}
|
|
39
48
|
}
|
package/dist/test/routes.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/test/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,QAAA,MAAM,MAAM,EAAE,WAAW,EAexB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/test/routes.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import Index from './pages/index.tsx';
|
|
3
|
-
const routes = [
|
|
4
|
-
{
|
|
5
|
-
"path": "/",
|
|
6
|
-
"element": React.createElement(Index)
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
"path": "test",
|
|
10
|
-
"element": React.createElement(React.lazy(() => import('./pages/test/layout.tsx'))),
|
|
11
|
-
"children": [
|
|
12
|
-
{
|
|
13
|
-
"path": "",
|
|
14
|
-
"element": React.createElement(React.lazy(() => import('./pages/test/index.tsx')))
|
|
15
|
-
}
|
|
16
|
-
]
|
|
17
|
-
}
|
|
18
|
-
];
|
|
19
|
-
export default routes;
|
|
20
|
-
//# sourceMappingURL=routes.js.map
|
package/dist/test/routes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/test/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAGtC,MAAM,MAAM,GAAkB;IAC5B;QACE,MAAM,EAAE,GAAG;QACX,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;KACtC;IACD;QACE,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACnF,UAAU,EAAE;YACV;gBACE,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;aACnF;SACF;KACF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/test/routes.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import Index from './/pages/index.tsx';
|
|
4
|
-
import type { RouteObject } from 'react-router-dom';
|
|
5
|
-
|
|
6
|
-
const routes: RouteObject[] = [
|
|
7
|
-
{
|
|
8
|
-
"path": "/",
|
|
9
|
-
"element": "<Index/>"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"path": "test",
|
|
13
|
-
"element": React.createElement(React.lazy(() => import('.//pages/test/layout.tsx'))),
|
|
14
|
-
"children": [
|
|
15
|
-
{
|
|
16
|
-
"path": "",
|
|
17
|
-
"element": React.createElement(React.lazy(() => import('.//pages/test/index.tsx')))
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
}
|
|
21
|
-
];
|
|
22
|
-
|
|
23
|
-
// Convert stringified lazy imports back to actual function calls
|
|
24
|
-
// Regex: "React.createElement(React.lazy(() => import('(.*)')))" - matches stringified lazy import wrappers
|
|
25
|
-
// Replaces them with actual lazy import functions (removes surrounding quotes)
|
|
26
|
-
export default routes;
|