aaex-file-router 1.8.1 → 1.9.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverPlugin.d.ts","sourceRoot":"","sources":["../../src/plugin/serverPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAM9B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"serverPlugin.d.ts","sourceRoot":"","sources":["../../src/plugin/serverPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAM9B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAiCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,uBAA4B,GACpC,MAAM,CAiCR"}
|
|
@@ -16,13 +16,22 @@ function getRelativeImportPath(fromFile, toDir) {
|
|
|
16
16
|
rel = "./" + rel;
|
|
17
17
|
return rel;
|
|
18
18
|
}
|
|
19
|
+
async function regenerateRoutes(pagesDir, serverOutputAbs) {
|
|
20
|
+
const scanner = new FileScanner(pagesDir);
|
|
21
|
+
const generator = new RouteGenerator();
|
|
22
|
+
const fileData = await scanner.get_file_data();
|
|
23
|
+
const serverRoutesCode = generator.generateServerRoutesFile(fileData);
|
|
24
|
+
const routesType = generator.generateTypesFile(fileData);
|
|
25
|
+
await fs.writeFile(serverOutputAbs, serverRoutesCode, "utf-8");
|
|
26
|
+
await fs.writeFile("src/routeTypes.ts", routesType, "utf-8");
|
|
27
|
+
console.log("[aaex-server-router] Routes generated");
|
|
28
|
+
}
|
|
19
29
|
/**
|
|
20
30
|
* Vite plugin that auto-generates server + client route files
|
|
21
31
|
* whenever files change in the pages directory.
|
|
22
32
|
*/
|
|
23
33
|
export function aaexServerRouter(options = {}) {
|
|
24
34
|
const pagesDir = options.pagesDir || "./src/pages";
|
|
25
|
-
const clientOutputFile = options.clientOutputFile || "./src/client-routes.ts";
|
|
26
35
|
const serverOutputFile = options.serverOutputFile || "./src/server-routes.ts";
|
|
27
36
|
let scanner;
|
|
28
37
|
let generator;
|
|
@@ -34,33 +43,15 @@ export function aaexServerRouter(options = {}) {
|
|
|
34
43
|
generator = new RouteGenerator();
|
|
35
44
|
},
|
|
36
45
|
async configureServer(server) {
|
|
37
|
-
// Convert to absolute paths
|
|
38
46
|
const pagesAbs = path.resolve(process.cwd(), pagesDir);
|
|
39
|
-
const clientOutputAbs = path.resolve(process.cwd(), clientOutputFile);
|
|
40
47
|
const serverOutputAbs = path.resolve(process.cwd(), serverOutputFile);
|
|
41
|
-
//
|
|
48
|
+
//run on server start
|
|
49
|
+
await regenerateRoutes(pagesDir, serverOutputAbs);
|
|
50
|
+
// Regenerate when files are changed
|
|
42
51
|
server.watcher.add(pagesAbs);
|
|
43
|
-
server.watcher.on("all", async (event
|
|
44
|
-
// Only regenerate on add/delete
|
|
52
|
+
server.watcher.on("all", async (event) => {
|
|
45
53
|
if (event === "add" || event === "unlink") {
|
|
46
|
-
|
|
47
|
-
// Re-scan and regenerate route info
|
|
48
|
-
scanner = new FileScanner(pagesDir);
|
|
49
|
-
generator = new RouteGenerator();
|
|
50
|
-
const fileData = await scanner.get_file_data();
|
|
51
|
-
// Generate files using the relative paths
|
|
52
|
-
const routesCode = generator.generateRoutesFile(fileData);
|
|
53
|
-
const serverRoutesCode = generator.generateServerRoutesFile(fileData);
|
|
54
|
-
const routesType = generator.generateTypesFile(fileData);
|
|
55
|
-
// Write to disk
|
|
56
|
-
await fs.writeFile(clientOutputAbs, routesCode, "utf-8");
|
|
57
|
-
await fs.writeFile(serverOutputAbs, serverRoutesCode, "utf-8");
|
|
58
|
-
await fs.writeFile("src/routeTypes.ts", routesType, "utf-8");
|
|
59
|
-
console.log(`[aaex-server-router] Routes regenerated at ${clientOutputFile} & ${serverOutputFile}`);
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
console.error("[aaex-server-router] Error regenerating routes:", error);
|
|
63
|
-
}
|
|
54
|
+
await regenerateRoutes(pagesDir, serverOutputAbs);
|
|
64
55
|
}
|
|
65
56
|
});
|
|
66
57
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverPlugin.js","sourceRoot":"","sources":["../../src/plugin/serverPlugin.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,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D;;;GAGG;AACH,SAAS,qBAAqB,CAAC,QAAgB,EAAE,KAAa;IAC5D,2DAA2D;IAC3D,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IAEvD,+CAA+C;IAC/C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE9B,kCAAkC;IAClC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAE3C,OAAO,GAAG,CAAC;AACb,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"serverPlugin.js","sourceRoot":"","sources":["../../src/plugin/serverPlugin.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,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D;;;GAGG;AACH,SAAS,qBAAqB,CAAC,QAAgB,EAAE,KAAa;IAC5D,2DAA2D;IAC3D,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IAEvD,+CAA+C;IAC/C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE9B,kCAAkC;IAClC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAE3C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,eAAuB;IACvE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;IAEvC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;IAC/C,MAAM,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAEzD,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAmC,EAAE;IAErC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC;IACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,wBAAwB,CAAC;IAE9E,IAAI,OAAoB,CAAC;IACzB,IAAI,SAAyB,CAAC;IAE9B,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,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,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YACvD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAEtE,qBAAqB;YACrB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAElD,oCAAoC;YACpC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE7B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC1C,MAAM,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aaex-file-router",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.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
|
"types": "dist/index.d.ts",
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
"test": "node ./dist/test/index.js",
|
|
9
9
|
"build": "npx tsc",
|
|
10
10
|
"dev": "npx tsc --watch",
|
|
11
|
-
"release": "npx tsc && npm publish"
|
|
11
|
+
"release": "npx tsc && npm version patch && npm publish",
|
|
12
|
+
"release:minor": "npx tsc && npm version minor && npm publish",
|
|
13
|
+
"release:major": "npx tsc && npm version major && npm publish"
|
|
12
14
|
},
|
|
13
15
|
"keywords": [
|
|
14
16
|
"react",
|