@e22m4u/js-trie-router 0.5.10 → 0.5.12

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.
@@ -2250,72 +2250,54 @@ var _TrieRouter = class _TrieRouter extends DebuggableService {
2250
2250
  }
2251
2251
  }
2252
2252
  /**
2253
- * Add hook.
2254
- *
2255
- * Example:
2256
- * ```
2257
- * import {TrieRouter} from '@e22m4u/js-trie-router';
2258
- * import {RouterHookType} from '@e22m4u/js-trie-router';
2259
- *
2260
- * // Router instance.
2261
- * const router = new TrieRouter();
2262
- *
2263
- * // Adds the "preHandler" hook for each route.
2264
- * router.addHook(
2265
- * RouterHookType.PRE_HANDLER,
2266
- * ctx => { ... },
2267
- * );
2268
- *
2269
- * // Adds the "postHandler" hook for each route.
2270
- * router.addHook(
2271
- * RouterHookType.POST_HANDLER,
2272
- * ctx => { ... },
2273
- * );
2274
- * ```
2253
+ * Add pre-handler hook.
2275
2254
  *
2276
- * @param {RouterHookType} type
2277
- * @param {Function} hook
2255
+ * @param {import('./hooks/index.js').PreHandlerHook} hook
2278
2256
  * @returns {this}
2279
2257
  */
2280
- addHook(type, hook) {
2281
- this.getService(RouterHookRegistry).addHook(type, hook);
2258
+ addPreHandler(hook) {
2259
+ this.getService(RouterHookRegistry).addHook(
2260
+ RouterHookType.PRE_HANDLER,
2261
+ hook
2262
+ );
2282
2263
  return this;
2283
2264
  }
2284
2265
  /**
2285
- * Has hook.
2266
+ * Has pre-handler hook.
2286
2267
  *
2287
- * @param {RouterHookType} type
2288
- * @param {Function} hook
2268
+ * @param {import('./hooks/index.js').PreHandlerHook} hook
2289
2269
  * @returns {boolean}
2290
2270
  */
2291
- hasHook(type, hook) {
2292
- return this.getService(RouterHookRegistry).hasHook(type, hook);
2271
+ hasPreHandler(hook) {
2272
+ return this.getService(RouterHookRegistry).hasHook(
2273
+ RouterHookType.PRE_HANDLER,
2274
+ hook
2275
+ );
2293
2276
  }
2294
2277
  /**
2295
- * Add pre-handler hook.
2278
+ * Add post-handler hook.
2296
2279
  *
2297
- * @param {Function} hook
2280
+ * @param {import('./hooks/index.js').PostHandlerHook} hook
2298
2281
  * @returns {this}
2299
2282
  */
2300
- addPreHandler(hook) {
2283
+ addPostHandler(hook) {
2301
2284
  this.getService(RouterHookRegistry).addHook(
2302
- RouterHookType.PRE_HANDLER,
2285
+ RouterHookType.POST_HANDLER,
2303
2286
  hook
2304
2287
  );
2305
2288
  return this;
2306
2289
  }
2307
2290
  /**
2308
- * Add post-handler hook.
2291
+ * Has post-handler hook.
2309
2292
  *
2310
- * @param {Function} hook
2311
- * @returns {this}
2293
+ * @param {import('./hooks/index.js').PostHandlerHook} hook
2294
+ * @returns {boolean}
2312
2295
  */
2313
- addPostHandler(hook) {
2314
- this.getService(RouterHookRegistry).addHook(
2296
+ hasPostHandler(hook) {
2297
+ return this.getService(RouterHookRegistry).hasHook(
2315
2298
  RouterHookType.POST_HANDLER,
2316
2299
  hook
2317
2300
  );
2318
- return this;
2319
2301
  }
2320
2302
  };
2321
2303
  __name(_TrieRouter, "TrieRouter");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e22m4u/js-trie-router",
3
- "version": "0.5.10",
3
+ "version": "0.5.12",
4
4
  "description": "HTTP маршрутизатор для Node.js на основе префиксного дерева",
5
5
  "author": "Mikhail Evstropov <e22m4u@yandex.ru>",
6
6
  "license": "MIT",
@@ -63,7 +63,7 @@
63
63
  "eslint-plugin-import": "~2.32.0",
64
64
  "eslint-plugin-jsdoc": "~61.5.0",
65
65
  "eslint-plugin-mocha": "~11.2.0",
66
- "globals": "~16.5.0",
66
+ "globals": "~17.0.0",
67
67
  "husky": "~9.1.7",
68
68
  "mocha": "~11.7.5",
69
69
  "prettier": "~3.7.4",
@@ -39,9 +39,9 @@ export type RoutePostHandler<T = unknown, U = unknown> = (
39
39
  /**
40
40
  * Route meta.
41
41
  */
42
- export type RouteMeta = {
42
+ export interface RouteMeta {
43
43
  [key: string]: unknown;
44
- };
44
+ }
45
45
 
46
46
  /**
47
47
  * Route definition.
@@ -2,15 +2,9 @@ import {RequestListener} from 'http';
2
2
  import {Route} from './route/index.js';
3
3
  import {RouteDefinition} from './route/index.js';
4
4
  import {DebuggableService} from './debuggable-service.js';
5
+ import {PostHandlerHook, PreHandlerHook} from './hooks/index.js';
5
6
  import {RouterBranch, RouterBranchDefinition} from './branch/index.js';
6
7
 
7
- import {
8
- RouterHook,
9
- RouterHookType,
10
- PostHandlerHook,
11
- PreHandlerHook,
12
- } from './hooks/index.js';
13
-
14
8
  /**
15
9
  * Trie router.
16
10
  */
@@ -83,51 +77,30 @@ export declare class TrieRouter extends DebuggableService {
83
77
  get requestListener(): RequestListener;
84
78
 
85
79
  /**
86
- * Add hook.
87
- *
88
- * @param type
89
- * @param hook
90
- */
91
- addHook(type: typeof RouterHookType.PRE_HANDLER, hook: PreHandlerHook): this;
92
-
93
- /**
94
- * Add hook.
95
- *
96
- * @param type
97
- * @param hook
98
- */
99
- addHook(
100
- type: typeof RouterHookType.POST_HANDLER,
101
- hook: PostHandlerHook,
102
- ): this;
103
-
104
- /**
105
- * Add hook.
80
+ * Add pre-handler hook.
106
81
  *
107
- * @param type
108
82
  * @param hook
109
83
  */
110
- addHook(type: RouterHookType, hook: RouterHook): this;
84
+ addPreHandler(hook: PreHandlerHook): this;
111
85
 
112
86
  /**
113
- * Has hook.
87
+ * Has pre-handler hook.
114
88
  *
115
- * @param type
116
89
  * @param hook
117
90
  */
118
- hasHook(type: RouterHookType, hook: RouterHook): boolean;
91
+ hasPreHandler(hook: PreHandlerHook): boolean;
119
92
 
120
93
  /**
121
- * Add pre-handler hook.
94
+ * Add post-handler hook.
122
95
  *
123
96
  * @param hook
124
97
  */
125
- addPreHandler(hook: PreHandlerHook): this;
98
+ addPostHandler(hook: PostHandlerHook): this;
126
99
 
127
100
  /**
128
- * Add post-handler hook.
101
+ * Has post-handler hook.
129
102
  *
130
103
  * @param hook
131
104
  */
132
- addPostHandler(hook: PostHandlerHook): this;
105
+ hasPostHandler(hook: PostHandlerHook): boolean;
133
106
  }
@@ -205,74 +205,56 @@ export class TrieRouter extends DebuggableService {
205
205
  }
206
206
 
207
207
  /**
208
- * Add hook.
209
- *
210
- * Example:
211
- * ```
212
- * import {TrieRouter} from '@e22m4u/js-trie-router';
213
- * import {RouterHookType} from '@e22m4u/js-trie-router';
214
- *
215
- * // Router instance.
216
- * const router = new TrieRouter();
217
- *
218
- * // Adds the "preHandler" hook for each route.
219
- * router.addHook(
220
- * RouterHookType.PRE_HANDLER,
221
- * ctx => { ... },
222
- * );
223
- *
224
- * // Adds the "postHandler" hook for each route.
225
- * router.addHook(
226
- * RouterHookType.POST_HANDLER,
227
- * ctx => { ... },
228
- * );
229
- * ```
208
+ * Add pre-handler hook.
230
209
  *
231
- * @param {RouterHookType} type
232
- * @param {Function} hook
210
+ * @param {import('./hooks/index.js').PreHandlerHook} hook
233
211
  * @returns {this}
234
212
  */
235
- addHook(type, hook) {
236
- this.getService(RouterHookRegistry).addHook(type, hook);
213
+ addPreHandler(hook) {
214
+ this.getService(RouterHookRegistry).addHook(
215
+ RouterHookType.PRE_HANDLER,
216
+ hook,
217
+ );
237
218
  return this;
238
219
  }
239
220
 
240
221
  /**
241
- * Has hook.
222
+ * Has pre-handler hook.
242
223
  *
243
- * @param {RouterHookType} type
244
- * @param {Function} hook
224
+ * @param {import('./hooks/index.js').PreHandlerHook} hook
245
225
  * @returns {boolean}
246
226
  */
247
- hasHook(type, hook) {
248
- return this.getService(RouterHookRegistry).hasHook(type, hook);
227
+ hasPreHandler(hook) {
228
+ return this.getService(RouterHookRegistry).hasHook(
229
+ RouterHookType.PRE_HANDLER,
230
+ hook,
231
+ );
249
232
  }
250
233
 
251
234
  /**
252
- * Add pre-handler hook.
235
+ * Add post-handler hook.
253
236
  *
254
- * @param {Function} hook
237
+ * @param {import('./hooks/index.js').PostHandlerHook} hook
255
238
  * @returns {this}
256
239
  */
257
- addPreHandler(hook) {
240
+ addPostHandler(hook) {
258
241
  this.getService(RouterHookRegistry).addHook(
259
- RouterHookType.PRE_HANDLER,
242
+ RouterHookType.POST_HANDLER,
260
243
  hook,
261
244
  );
262
245
  return this;
263
246
  }
264
247
 
265
248
  /**
266
- * Add post-handler hook.
249
+ * Has post-handler hook.
267
250
  *
268
- * @param {Function} hook
269
- * @returns {this}
251
+ * @param {import('./hooks/index.js').PostHandlerHook} hook
252
+ * @returns {boolean}
270
253
  */
271
- addPostHandler(hook) {
272
- this.getService(RouterHookRegistry).addHook(
254
+ hasPostHandler(hook) {
255
+ return this.getService(RouterHookRegistry).hasHook(
273
256
  RouterHookType.POST_HANDLER,
274
257
  hook,
275
258
  );
276
- return this;
277
259
  }
278
260
  }
@@ -605,51 +605,47 @@ describe('TrieRouter', function () {
605
605
  });
606
606
  });
607
607
 
608
- describe('addHook', function () {
609
- it('should add the given hook to the RouterHookRegistry and returns itself', function () {
608
+ describe('addPreHandler', function () {
609
+ it('should register a given hook in the hook registry and return itself', function () {
610
610
  const router = new TrieRouter();
611
611
  const reg = router.getService(RouterHookRegistry);
612
- const type = RouterHookType.PRE_HANDLER;
613
612
  const hook = () => undefined;
614
- expect(reg.hasHook(type, hook)).to.be.false;
615
- const res = router.addHook(type, hook);
613
+ expect(reg.hasHook(RouterHookType.PRE_HANDLER, hook)).to.be.false;
614
+ const res = router.addPreHandler(hook);
616
615
  expect(res).to.be.eq(router);
617
- expect(reg.hasHook(type, hook)).to.be.true;
616
+ expect(reg.hasHook(RouterHookType.PRE_HANDLER, hook)).to.be.true;
618
617
  });
619
618
  });
620
619
 
621
- describe('hasHook', function () {
622
- it('should return true if a given function is registered with the hook type', function () {
620
+ describe('hasPreHandler', function () {
621
+ it('should return true if a given hook is registered', function () {
623
622
  const router = new TrieRouter();
624
- const type = RouterHookType.PRE_HANDLER;
625
623
  const hook = () => undefined;
626
- expect(router.hasHook(type, hook)).to.be.false;
627
- router.addHook(type, hook);
628
- expect(router.hasHook(type, hook)).to.be.true;
624
+ expect(router.hasPreHandler(hook)).to.be.false;
625
+ router.addPreHandler(hook);
626
+ expect(router.hasPreHandler(hook)).to.be.true;
629
627
  });
630
628
  });
631
629
 
632
- describe('addPreHandler', function () {
633
- it('should add the given pre-handler hook to the RouterHookRegistry and returns itself', function () {
630
+ describe('addPostHandler', function () {
631
+ it('should register a given hook in the hook registry and return itself', function () {
634
632
  const router = new TrieRouter();
635
633
  const reg = router.getService(RouterHookRegistry);
636
634
  const hook = () => undefined;
637
- expect(reg.hasHook(RouterHookType.PRE_HANDLER, hook)).to.be.false;
638
- const res = router.addPreHandler(hook);
635
+ expect(reg.hasHook(RouterHookType.POST_HANDLER, hook)).to.be.false;
636
+ const res = router.addPostHandler(hook);
639
637
  expect(res).to.be.eq(router);
640
- expect(reg.hasHook(RouterHookType.PRE_HANDLER, hook)).to.be.true;
638
+ expect(reg.hasHook(RouterHookType.POST_HANDLER, hook)).to.be.true;
641
639
  });
642
640
  });
643
641
 
644
- describe('addPostHandler', function () {
645
- it('should add the given post-handler hook to the RouterHookRegistry and returns itself', function () {
642
+ describe('hasPostHandler', function () {
643
+ it('should return true if a given hook is registered', function () {
646
644
  const router = new TrieRouter();
647
- const reg = router.getService(RouterHookRegistry);
648
645
  const hook = () => undefined;
649
- expect(reg.hasHook(RouterHookType.POST_HANDLER, hook)).to.be.false;
650
- const res = router.addPostHandler(hook);
651
- expect(res).to.be.eq(router);
652
- expect(reg.hasHook(RouterHookType.POST_HANDLER, hook)).to.be.true;
646
+ expect(router.hasPostHandler(hook)).to.be.false;
647
+ router.addPostHandler(hook);
648
+ expect(router.hasPostHandler(hook)).to.be.true;
653
649
  });
654
650
  });
655
651
  });