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;AAmBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,uBAA4B,GACpC,MAAM,CA+DR"}
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
- // Watch the pages directory for changes
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, filePath) => {
44
- // Only regenerate on add/delete
52
+ server.watcher.on("all", async (event) => {
45
53
  if (event === "add" || event === "unlink") {
46
- try {
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":"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"}
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.8.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",