@adonisjs/assembler 8.0.0-next.24 → 8.0.0-next.25

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/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { a as loadHooks, c as readTsConfig, d as runNode, f as throttle, m as debug_default, n as copyFiles, o as memoize, p as watch, r as getPort, s as parseConfig, t as VirtualFileSystem, u as run } from "./virtual_file_system-bGeoWsK-.js";
2
2
  import { n as FileBuffer, t as IndexGenerator } from "./main-XUXlmlEy.js";
3
- import { t as RoutesScanner } from "./main-DcPeMQQd.js";
3
+ import { t as RoutesScanner } from "./main-nSQGnZZV.js";
4
4
  import "./helpers-DDurYRsZ.js";
5
5
  import dedent from "dedent";
6
6
  import fs, { readFile, unlink } from "node:fs/promises";
@@ -108,7 +108,7 @@ var Bundler = class {
108
108
  "buildFinished"
109
109
  ]);
110
110
  this.#indexGenerator = new IndexGenerator(this.cwdPath, this.ui.logger);
111
- await this.#hooks.runner("init").run(this, this.#indexGenerator);
111
+ await this.#hooks.runner("init").run(this, this.#hooks, this.#indexGenerator);
112
112
  this.#hooks.clear("init");
113
113
  this.ui.logger.info("generating indexes...");
114
114
  await this.#indexGenerator.generate();
@@ -568,7 +568,7 @@ var DevServer = class DevServer {
568
568
  ]);
569
569
  this.#registerServerRestartHooks();
570
570
  this.#setupKeyboardShortcuts();
571
- await this.#hooks.runner("init").run(this, this.#indexGenerator);
571
+ await this.#hooks.runner("init").run(this, this.#hooks, this.#indexGenerator);
572
572
  this.#hooks.clear("init");
573
573
  this.ui.logger.info("generating indexes...");
574
574
  await this.#indexGenerator.generate();
@@ -855,7 +855,7 @@ var TestRunner = class {
855
855
  "testsStarting",
856
856
  "testsFinished"
857
857
  ]);
858
- await this.#hooks.runner("init").run(this, this.#indexGenerator);
858
+ await this.#hooks.runner("init").run(this, this.#hooks, this.#indexGenerator);
859
859
  this.#hooks.clear("init");
860
860
  this.ui.logger.info("generating indexes...");
861
861
  await this.#indexGenerator.generate();
@@ -888,7 +888,7 @@ var TestRunner = class {
888
888
  "fileRemoved"
889
889
  ]);
890
890
  this.#registerServerRestartHooks();
891
- await this.#hooks.runner("init").run(this, this.#indexGenerator);
891
+ await this.#hooks.runner("init").run(this, this.#hooks, this.#indexGenerator);
892
892
  this.#hooks.clear("init");
893
893
  this.ui.logger.info("generating indexes...");
894
894
  await this.#indexGenerator.generate();
@@ -79,6 +79,7 @@ async function extractValidators(appRoot, vfs, controller) {
79
79
  }))).filter((value) => !!value);
80
80
  }
81
81
  var RoutesScanner = class {
82
+ #filter = () => false;
82
83
  #appRoot;
83
84
  #controllerRoutes = {};
84
85
  #scannedRoutes = [];
@@ -88,7 +89,6 @@ var RoutesScanner = class {
88
89
  ui = cliui();
89
90
  pathsResolver;
90
91
  rules = {
91
- skip: [],
92
92
  request: {},
93
93
  response: {}
94
94
  };
@@ -96,11 +96,9 @@ var RoutesScanner = class {
96
96
  this.#appRoot = appRoot;
97
97
  this.pathsResolver = new PathsResolver(appRoot);
98
98
  rulesCollection.forEach((rules) => {
99
- this.rules.skip = this.rules.skip.concat(rules.skip);
100
99
  Object.assign(this.rules.request, rules.request);
101
100
  Object.assign(this.rules.response, rules.response);
102
101
  });
103
- this.rules.skip = Array.from(new Set([...this.rules.skip]));
104
102
  }
105
103
  #prepareRequestTypes(route) {
106
104
  if (!route.validators) return;
@@ -166,16 +164,16 @@ var RoutesScanner = class {
166
164
  const controller = await this.#inspectControllerSpecifier(route.handler.importExpression, route.handler.method);
167
165
  if (!controller) return this.#processRouteWithoutController(route);
168
166
  debug_default("processing route \"%s\" with inspected controller %O", route.name, controller);
169
- const routeName = route.name ?? new StringBuilder(controller.name).removeSuffix("Controller").snakeCase().suffix(`.${string.snakeCase(controller.method)}`).toString();
170
- if (this.rules.skip.includes(routeName)) return;
167
+ route.name = route.name ?? new StringBuilder(controller.name).removeSuffix("Controller").snakeCase().suffix(`.${string.snakeCase(controller.method)}`).toString();
168
+ if (this.#filter(route)) return;
171
169
  const scannedRoute = {
172
- name: routeName,
170
+ name: route.name,
173
171
  domain: route.domain,
174
172
  methods: route.methods,
175
173
  pattern: route.pattern,
176
174
  tokens: route.tokens,
177
- request: this.rules.request[routeName],
178
- response: this.rules.response[routeName],
175
+ request: this.rules.request[route.name],
176
+ response: this.rules.response[route.name],
179
177
  controller
180
178
  };
181
179
  debug_default("scanned route %O", scannedRoute);
@@ -189,7 +187,7 @@ var RoutesScanner = class {
189
187
  }
190
188
  }
191
189
  async #processRoute(route, vfs) {
192
- if (route.name && this.rules.skip.includes(route.name)) {
190
+ if (route.name && this.#filter(route)) {
193
191
  debug_default("route skipped route: %O, rules: %O", route, this.rules);
194
192
  return;
195
193
  }
@@ -1,4 +1,4 @@
1
1
  import "../../../virtual_file_system-bGeoWsK-.js";
2
- import { t as RoutesScanner } from "../../../main-DcPeMQQd.js";
2
+ import { t as RoutesScanner } from "../../../main-nSQGnZZV.js";
3
3
  import "../../../helpers-DDurYRsZ.js";
4
4
  export { RoutesScanner };
@@ -186,6 +186,11 @@ export type RoutesListItem = {
186
186
  end: string;
187
187
  }[];
188
188
  };
189
+ /**
190
+ * The filter fn to exclude routes from being processed. Return true
191
+ * to filter out (aka exclude) the route
192
+ */
193
+ export type RoutesScannerFilterFn = (route: RoutesListItem) => boolean;
189
194
  /**
190
195
  * Configuration rules accepted by the routes scanner to customize
191
196
  * the scanning behavior and override type inference.
@@ -208,11 +213,6 @@ export type RoutesListItem = {
208
213
  * }
209
214
  */
210
215
  export type RoutesScannerRules = {
211
- /**
212
- * An array of route names or controller+method paths to skip from processing.
213
- * Useful for excluding routes that don't need type generation.
214
- */
215
- skip: string[];
216
216
  /**
217
217
  * Define custom response types for specific routes by their name
218
218
  * or controller+method path. Overrides automatic type inference.
@@ -6,6 +6,7 @@ import { type TestRunner } from '../test_runner.ts';
6
6
  import { type RoutesListItem } from './code_scanners.ts';
7
7
  import { type IndexGenerator } from '../index_generator/main.ts';
8
8
  import { type RoutesScanner } from '../code_scanners/routes_scanner/main.ts';
9
+ import type Hooks from '@poppinss/hooks';
9
10
  /**
10
11
  * Defines a hook that can be either a lazy import or an object with a run method.
11
12
  * This type provides flexibility in how hooks are defined and imported, supporting
@@ -45,7 +46,9 @@ export type CommonHooks = {
45
46
  *
46
47
  * @param parent - The parent instance (DevServer, TestRunner, or Bundler)
47
48
  */
48
- init: DefineHook<(parent: DevServer | TestRunner | Bundler, indexGenerator: IndexGenerator) => AsyncOrSync<void>>[];
49
+ init: DefineHook<(parent: DevServer | TestRunner | Bundler, hooks: Hooks<{
50
+ [P in keyof AllHooks]: [HookParams<P>, HookParams<P>];
51
+ }>, indexGenerator: IndexGenerator) => AsyncOrSync<void>>[];
49
52
  };
50
53
  /**
51
54
  * Hooks executed by the dev server around the router.
@@ -148,7 +148,9 @@ export declare function isRelative(pathValue: string): boolean;
148
148
  * @param names - Array of hook names to load
149
149
  * @returns Promise resolving to configured Hooks instance
150
150
  */
151
- export declare function loadHooks<K extends keyof AllHooks>(rcFileHooks: Partial<AllHooks> | undefined, names: K[]): Promise<Hooks<{ [P in K]: [HookParams<P>, HookParams<P>]; }>>;
151
+ export declare function loadHooks<K extends keyof AllHooks>(rcFileHooks: Partial<AllHooks> | undefined, names: K[]): Promise<Hooks<{
152
+ [P in K]: [HookParams<P>, HookParams<P>];
153
+ }>>;
152
154
  /**
153
155
  * Wraps a function inside another function that throttles the concurrent
154
156
  * executions of a function. If the function is called too quickly, then
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@adonisjs/assembler",
3
3
  "description": "Provides utilities to run AdonisJS development server and build project for production",
4
- "version": "8.0.0-next.24",
4
+ "version": "8.0.0-next.25",
5
5
  "engines": {
6
6
  "node": ">=24.0.0"
7
7
  },