Просмотр исходного кода

refactor: renames HookType to RouterHookType

e22m4u 1 месяц назад
Родитель
Сommit
3d55c97244

+ 15 - 15
dist/cjs/index.cjs

@@ -39,7 +39,6 @@ __export(index_exports, {
   ErrorSender: () => ErrorSender,
   HookInvoker: () => HookInvoker,
   HookRegistry: () => HookRegistry,
-  HookType: () => HookType,
   HttpMethod: () => HttpMethod,
   METHODS_WITH_BODY: () => METHODS_WITH_BODY,
   QueryParser: () => QueryParser,
@@ -47,6 +46,7 @@ __export(index_exports, {
   RequestParser: () => RequestParser,
   Route: () => Route,
   RouteRegistry: () => RouteRegistry,
+  RouterHookType: () => RouterHookType,
   RouterOptions: () => RouterOptions,
   TrieRouter: () => TrieRouter,
   UNPARSABLE_MEDIA_TYPES: () => UNPARSABLE_MEDIA_TYPES,
@@ -70,6 +70,7 @@ module.exports = __toCommonJS(index_exports);
 
 // src/route.js
 var import_js_format14 = require("@e22m4u/js-format");
+var import_js_debug = require("@e22m4u/js-debug");
 
 // src/hooks/hook-invoker.js
 var import_js_format13 = require("@e22m4u/js-format");
@@ -635,7 +636,7 @@ __name(getRequestPathname, "getRequestPathname");
 
 // src/hooks/hook-registry.js
 var import_js_format12 = require("@e22m4u/js-format");
-var HookType = {
+var RouterHookType = {
   PRE_HANDLER: "preHandler",
   POST_HANDLER: "postHandler"
 };
@@ -657,7 +658,7 @@ var _HookRegistry = class _HookRegistry {
   addHook(type, hook) {
     if (!type || typeof type !== "string")
       throw new import_js_format12.Errorf("The hook type is required, but %v was given.", type);
-    if (!Object.values(HookType).includes(type))
+    if (!Object.values(RouterHookType).includes(type))
       throw new import_js_format12.Errorf("The hook type %v is not supported.", type);
     if (!hook || typeof hook !== "function")
       throw new import_js_format12.Errorf(
@@ -680,7 +681,7 @@ var _HookRegistry = class _HookRegistry {
   hasHook(type, hook) {
     if (!type || typeof type !== "string")
       throw new import_js_format12.Errorf("The hook type is required, but %v was given.", type);
-    if (!Object.values(HookType).includes(type))
+    if (!Object.values(RouterHookType).includes(type))
       throw new import_js_format12.Errorf("The hook type %v is not supported.", type);
     if (!hook || typeof hook !== "function")
       throw new import_js_format12.Errorf(
@@ -700,7 +701,7 @@ var _HookRegistry = class _HookRegistry {
   getHooks(type) {
     if (!type || typeof type !== "string")
       throw new import_js_format12.Errorf("The hook type is required, but %v was given.", type);
-    if (!Object.values(HookType).includes(type))
+    if (!Object.values(RouterHookType).includes(type))
       throw new import_js_format12.Errorf("The hook type %v is not supported.", type);
     return this._hooks.get(type) || [];
   }
@@ -749,7 +750,7 @@ var _HookInvoker = class _HookInvoker extends DebuggableService {
         'The parameter "hookType" of the HookInvoker.invokeAndContinueUntilValueReceived should be a non-empty String, but %v was given.',
         hookType
       );
-    if (!Object.values(HookType).includes(hookType))
+    if (!Object.values(RouterHookType).includes(hookType))
       throw new import_js_format13.Errorf("The hook type %v is not supported.", hookType);
     if (!response || typeof response !== "object" || Array.isArray(response) || typeof response.headersSent !== "boolean") {
       throw new import_js_format13.Errorf(
@@ -788,7 +789,6 @@ __name(_HookInvoker, "HookInvoker");
 var HookInvoker = _HookInvoker;
 
 // src/route.js
-var import_js_debug = require("@e22m4u/js-debug");
 var HttpMethod = {
   GET: "GET",
   POST: "POST",
@@ -894,13 +894,13 @@ var _Route = class _Route extends import_js_debug.Debuggable {
     if (routeDef.preHandler != null) {
       const preHandlerHooks = Array.isArray(routeDef.preHandler) ? routeDef.preHandler : [routeDef.preHandler];
       preHandlerHooks.forEach((hook) => {
-        this._hookRegistry.addHook(HookType.PRE_HANDLER, hook);
+        this._hookRegistry.addHook(RouterHookType.PRE_HANDLER, hook);
       });
     }
     if (routeDef.postHandler != null) {
       const postHandlerHooks = Array.isArray(routeDef.postHandler) ? routeDef.postHandler : [routeDef.postHandler];
       postHandlerHooks.forEach((hook) => {
-        this._hookRegistry.addHook(HookType.POST_HANDLER, hook);
+        this._hookRegistry.addHook(RouterHookType.POST_HANDLER, hook);
       });
     }
     this.ctorDebug("A new route %s %v was created.", this._method, this._path);
@@ -1639,7 +1639,7 @@ var _TrieRouter = class _TrieRouter extends DebuggableService {
         const hookInvoker = this.getService(HookInvoker);
         data = hookInvoker.invokeAndContinueUntilValueReceived(
           route,
-          HookType.PRE_HANDLER,
+          RouterHookType.PRE_HANDLER,
           res,
           context
         );
@@ -1649,7 +1649,7 @@ var _TrieRouter = class _TrieRouter extends DebuggableService {
           if (isPromise(data)) data = await data;
           let postHandlerData = hookInvoker.invokeAndContinueUntilValueReceived(
             route,
-            HookType.POST_HANDLER,
+            RouterHookType.POST_HANDLER,
             res,
             context,
             data
@@ -1673,20 +1673,20 @@ var _TrieRouter = class _TrieRouter extends DebuggableService {
    * Example:
    * ```
    * import {TrieRouter} from '@e22m4u/js-trie-router';
-   * import {HookType} from '@e22m4u/js-trie-router';
+   * import {RouterHookType} from '@e22m4u/js-trie-router';
    *
    * // Router instance.
    * const router = new TrieRouter();
    *
    * // Adds the "preHandler" hook for each route.
    * router.addHook(
-   *   HookType.PRE_HANDLER,
+   *   RouterHookType.PRE_HANDLER,
    *   ctx => { ... },
    * );
    *
    * // Adds the "postHandler" hook for each route.
    * router.addHook(
-   *   HookType.POST_HANDLER,
+   *   RouterHookType.POST_HANDLER,
    *   ctx => { ... },
    * );
    * ```
@@ -1712,7 +1712,6 @@ var TrieRouter = _TrieRouter;
   ErrorSender,
   HookInvoker,
   HookRegistry,
-  HookType,
   HttpMethod,
   METHODS_WITH_BODY,
   QueryParser,
@@ -1720,6 +1719,7 @@ var TrieRouter = _TrieRouter;
   RequestParser,
   Route,
   RouteRegistry,
+  RouterHookType,
   RouterOptions,
   TrieRouter,
   UNPARSABLE_MEDIA_TYPES,

+ 2 - 2
src/hooks/hook-invoker.d.ts

@@ -1,7 +1,7 @@
 import {Route} from '../route.js';
 import {ServerResponse} from 'http';
 import {ValueOrPromise} from '../types.js';
-import {HookType} from './hook-registry.js';
+import {RouterHookType} from './hook-registry.js';
 import {DebuggableService} from '../debuggable-service.js';
 
 /**
@@ -18,7 +18,7 @@ export declare class HookInvoker extends DebuggableService {
    */
   invokeAndContinueUntilValueReceived(
     route: Route,
-    hookType: HookType,
+    hookType: RouterHookType,
     response: ServerResponse,
     ...args: unknown[]
   ): ValueOrPromise<unknown>;

+ 2 - 2
src/hooks/hook-invoker.js

@@ -1,9 +1,9 @@
 import {Route} from '../route.js';
 import {Errorf} from '@e22m4u/js-format';
 import {isPromise} from '../utils/index.js';
-import {HookType} from './hook-registry.js';
 import {HookRegistry} from './hook-registry.js';
 import {isResponseSent} from '../utils/index.js';
+import {RouterHookType} from './hook-registry.js';
 import {DebuggableService} from '../debuggable-service.js';
 
 /**
@@ -34,7 +34,7 @@ export class HookInvoker extends DebuggableService {
           'should be a non-empty String, but %v was given.',
         hookType,
       );
-    if (!Object.values(HookType).includes(hookType))
+    if (!Object.values(RouterHookType).includes(hookType))
       throw new Errorf('The hook type %v is not supported.', hookType);
     if (
       !response ||

+ 58 - 41
src/hooks/hook-invoker.spec.js

@@ -2,9 +2,9 @@ import {expect} from '../chai.js';
 import {Route} from '../route.js';
 import {HttpMethod} from '../route.js';
 import {format} from '@e22m4u/js-format';
-import {HookType} from './hook-registry.js';
 import {HookInvoker} from './hook-invoker.js';
 import {HookRegistry} from './hook-registry.js';
+import {RouterHookType} from './hook-registry.js';
 import {createResponseMock} from '../utils/index.js';
 
 describe('HookInvoker', function () {
@@ -13,7 +13,11 @@ describe('HookInvoker', function () {
       const s = new HookInvoker();
       const res = createResponseMock();
       const throwable = v => () =>
-        s.invokeAndContinueUntilValueReceived(v, HookType.PRE_HANDLER, res);
+        s.invokeAndContinueUntilValueReceived(
+          v,
+          RouterHookType.PRE_HANDLER,
+          res,
+        );
       const error = v =>
         format(
           'The parameter "route" of ' +
@@ -66,7 +70,7 @@ describe('HookInvoker', function () {
       expect(throwable({})).to.throw(error('Object'));
       expect(throwable([])).to.throw(error('Array'));
       expect(throwable(undefined)).to.throw(error('undefined'));
-      throwable(HookType.PRE_HANDLER)();
+      throwable(RouterHookType.PRE_HANDLER)();
     });
 
     it('requires the parameter "hookType" to be a supported hook', function () {
@@ -77,7 +81,7 @@ describe('HookInvoker', function () {
         handler: () => undefined,
       });
       const res = createResponseMock();
-      Object.values(HookType).forEach(type =>
+      Object.values(RouterHookType).forEach(type =>
         s.invokeAndContinueUntilValueReceived(route, type, res),
       );
       const throwable = () =>
@@ -93,7 +97,11 @@ describe('HookInvoker', function () {
         handler: () => undefined,
       });
       const throwable = v => () =>
-        s.invokeAndContinueUntilValueReceived(route, HookType.PRE_HANDLER, v);
+        s.invokeAndContinueUntilValueReceived(
+          route,
+          RouterHookType.PRE_HANDLER,
+          v,
+        );
       const error = v =>
         format(
           'The parameter "response" of ' +
@@ -117,10 +125,10 @@ describe('HookInvoker', function () {
     it('invokes global hooks in priority', function () {
       const s = new HookInvoker();
       const order = [];
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook1');
       });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook2');
       });
       const route = new Route({
@@ -138,7 +146,7 @@ describe('HookInvoker', function () {
       });
       s.invokeAndContinueUntilValueReceived(
         route,
-        HookType.PRE_HANDLER,
+        RouterHookType.PRE_HANDLER,
         createResponseMock(),
       );
       expect(order).to.be.eql([
@@ -153,14 +161,14 @@ describe('HookInvoker', function () {
       const s = new HookInvoker();
       const order = [];
       const ret = 'OK';
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook1');
       });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook2');
         return ret;
       });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook3');
       });
       const route = new Route({
@@ -178,7 +186,7 @@ describe('HookInvoker', function () {
       });
       const result = s.invokeAndContinueUntilValueReceived(
         route,
-        HookType.PRE_HANDLER,
+        RouterHookType.PRE_HANDLER,
         createResponseMock(),
       );
       expect(result).to.be.eq(ret);
@@ -189,10 +197,10 @@ describe('HookInvoker', function () {
       const s = new HookInvoker();
       const order = [];
       const ret = 'OK';
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook1');
       });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook2');
       });
       const route = new Route({
@@ -214,7 +222,7 @@ describe('HookInvoker', function () {
       });
       const result = s.invokeAndContinueUntilValueReceived(
         route,
-        HookType.PRE_HANDLER,
+        RouterHookType.PRE_HANDLER,
         createResponseMock(),
       );
       expect(result).to.be.eq(ret);
@@ -230,14 +238,14 @@ describe('HookInvoker', function () {
       const s = new HookInvoker();
       const order = [];
       const res = createResponseMock();
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook1');
       });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook2');
         res._headersSent = true;
       });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook3');
       });
       const route = new Route({
@@ -255,7 +263,7 @@ describe('HookInvoker', function () {
       });
       const result = s.invokeAndContinueUntilValueReceived(
         route,
-        HookType.PRE_HANDLER,
+        RouterHookType.PRE_HANDLER,
         res,
       );
       expect(result).to.be.eq(res);
@@ -266,10 +274,10 @@ describe('HookInvoker', function () {
       const s = new HookInvoker();
       const order = [];
       const res = createResponseMock();
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook1');
       });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook2');
       });
       const route = new Route({
@@ -291,7 +299,7 @@ describe('HookInvoker', function () {
       });
       const result = s.invokeAndContinueUntilValueReceived(
         route,
-        HookType.PRE_HANDLER,
+        RouterHookType.PRE_HANDLER,
         res,
       );
       expect(result).to.be.eq(res);
@@ -306,13 +314,16 @@ describe('HookInvoker', function () {
     it('returns a Promise if any global hook is asynchronous', async function () {
       const s = new HookInvoker();
       const order = [];
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook1');
       });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, async () => {
-        order.push('globalHook2');
-      });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(
+        RouterHookType.PRE_HANDLER,
+        async () => {
+          order.push('globalHook2');
+        },
+      );
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook3');
       });
       const route = new Route({
@@ -330,7 +341,7 @@ describe('HookInvoker', function () {
       });
       const promise = s.invokeAndContinueUntilValueReceived(
         route,
-        HookType.PRE_HANDLER,
+        RouterHookType.PRE_HANDLER,
         createResponseMock(),
       );
       expect(promise).to.be.instanceof(Promise);
@@ -347,12 +358,18 @@ describe('HookInvoker', function () {
     it('returns a Promise if entire global hooks are asynchronous', async function () {
       const s = new HookInvoker();
       const order = [];
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, async () => {
-        order.push('globalHook1');
-      });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, async () => {
-        order.push('globalHook2');
-      });
+      s.getService(HookRegistry).addHook(
+        RouterHookType.PRE_HANDLER,
+        async () => {
+          order.push('globalHook1');
+        },
+      );
+      s.getService(HookRegistry).addHook(
+        RouterHookType.PRE_HANDLER,
+        async () => {
+          order.push('globalHook2');
+        },
+      );
       const route = new Route({
         method: HttpMethod.GET,
         path: '/',
@@ -368,7 +385,7 @@ describe('HookInvoker', function () {
       });
       const promise = s.invokeAndContinueUntilValueReceived(
         route,
-        HookType.PRE_HANDLER,
+        RouterHookType.PRE_HANDLER,
         createResponseMock(),
       );
       expect(promise).to.be.instanceof(Promise);
@@ -384,10 +401,10 @@ describe('HookInvoker', function () {
     it('returns a Promise if any route hook is asynchronous', async function () {
       const s = new HookInvoker();
       const order = [];
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook1');
       });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook2');
       });
       const route = new Route({
@@ -408,7 +425,7 @@ describe('HookInvoker', function () {
       });
       const promise = s.invokeAndContinueUntilValueReceived(
         route,
-        HookType.PRE_HANDLER,
+        RouterHookType.PRE_HANDLER,
         createResponseMock(),
       );
       expect(promise).to.be.instanceof(Promise);
@@ -425,10 +442,10 @@ describe('HookInvoker', function () {
     it('returns a Promise if entire route hooks are asynchronous', async function () {
       const s = new HookInvoker();
       const order = [];
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook1');
       });
-      s.getService(HookRegistry).addHook(HookType.PRE_HANDLER, () => {
+      s.getService(HookRegistry).addHook(RouterHookType.PRE_HANDLER, () => {
         order.push('globalHook2');
       });
       const route = new Route({
@@ -446,7 +463,7 @@ describe('HookInvoker', function () {
       });
       const promise = s.invokeAndContinueUntilValueReceived(
         route,
-        HookType.PRE_HANDLER,
+        RouterHookType.PRE_HANDLER,
         createResponseMock(),
       );
       expect(promise).to.be.instanceof(Promise);

+ 14 - 10
src/hooks/hook-registry.d.ts

@@ -5,15 +5,16 @@ import {DebuggableService} from '../debuggable-service.js';
 /**
  * Hook type.
  */
-export declare const HookType: {
+export declare const RouterHookType: {
   PRE_HANDLER: 'preHandler';
   POST_HANDLER: 'postHandler';
 };
 
 /**
- * Type of HookType.
+ * Type of RouterHookType.
  */
-export type HookType = (typeof HookType)[keyof typeof HookType];
+export type RouterHookType =
+  (typeof RouterHookType)[keyof typeof RouterHookType];
 
 /**
  * Router hook.
@@ -40,7 +41,7 @@ export declare class HookRegistry extends DebuggableService {
    * @param type
    * @param hook
    */
-  addHook(type: typeof HookType.PRE_HANDLER, hook: PreHandlerHook): this;
+  addHook(type: typeof RouterHookType.PRE_HANDLER, hook: PreHandlerHook): this;
 
   /**
    * Add hook.
@@ -48,7 +49,10 @@ export declare class HookRegistry extends DebuggableService {
    * @param type
    * @param hook
    */
-  addHook(type: typeof HookType.POST_HANDLER, hook: PostHandlerHook): this;
+  addHook(
+    type: typeof RouterHookType.POST_HANDLER,
+    hook: PostHandlerHook,
+  ): this;
 
   /**
    * Add hook.
@@ -56,7 +60,7 @@ export declare class HookRegistry extends DebuggableService {
    * @param type
    * @param hook
    */
-  addHook(type: HookType, hook: RouterHook): this;
+  addHook(type: RouterHookType, hook: RouterHook): this;
 
   /**
    * Has hook.
@@ -64,26 +68,26 @@ export declare class HookRegistry extends DebuggableService {
    * @param type
    * @param hook
    */
-  hasHook(type: HookType, hook: RouterHook): boolean;
+  hasHook(type: RouterHookType, hook: RouterHook): boolean;
 
   /**
    * Get hooks.
    *
    * @param type
    */
-  getHooks(type: typeof HookType.PRE_HANDLER): PreHandlerHook[];
+  getHooks(type: typeof RouterHookType.PRE_HANDLER): PreHandlerHook[];
 
   /**
    * Get hooks.
    *
    * @param type
    */
-  getHooks(type: typeof HookType.POST_HANDLER): PostHandlerHook[];
+  getHooks(type: typeof RouterHookType.POST_HANDLER): PostHandlerHook[];
 
   /**
    * Get hooks.
    *
    * @param type
    */
-  getHooks(type: HookType): RouterHook[];
+  getHooks(type: RouterHookType): RouterHook[];
 }

+ 4 - 4
src/hooks/hook-registry.js

@@ -8,7 +8,7 @@ import {Errorf} from '@e22m4u/js-format';
  *   POST_HANDLER: 'postHandler',
  * }}
  */
-export const HookType = {
+export const RouterHookType = {
   PRE_HANDLER: 'preHandler',
   POST_HANDLER: 'postHandler',
 };
@@ -35,7 +35,7 @@ export class HookRegistry {
   addHook(type, hook) {
     if (!type || typeof type !== 'string')
       throw new Errorf('The hook type is required, but %v was given.', type);
-    if (!Object.values(HookType).includes(type))
+    if (!Object.values(RouterHookType).includes(type))
       throw new Errorf('The hook type %v is not supported.', type);
     if (!hook || typeof hook !== 'function')
       throw new Errorf(
@@ -59,7 +59,7 @@ export class HookRegistry {
   hasHook(type, hook) {
     if (!type || typeof type !== 'string')
       throw new Errorf('The hook type is required, but %v was given.', type);
-    if (!Object.values(HookType).includes(type))
+    if (!Object.values(RouterHookType).includes(type))
       throw new Errorf('The hook type %v is not supported.', type);
     if (!hook || typeof hook !== 'function')
       throw new Errorf(
@@ -80,7 +80,7 @@ export class HookRegistry {
   getHooks(type) {
     if (!type || typeof type !== 'string')
       throw new Errorf('The hook type is required, but %v was given.', type);
-    if (!Object.values(HookType).includes(type))
+    if (!Object.values(RouterHookType).includes(type))
       throw new Errorf('The hook type %v is not supported.', type);
     return this._hooks.get(type) || [];
   }

+ 14 - 14
src/hooks/hook-registry.spec.js

@@ -1,7 +1,7 @@
 import {expect} from '../chai.js';
 import {format} from '@e22m4u/js-format';
-import {HookType} from './hook-registry.js';
 import {HookRegistry} from './hook-registry.js';
+import {RouterHookType} from './hook-registry.js';
 
 describe('HookRegistry', function () {
   describe('addHook', function () {
@@ -20,12 +20,12 @@ describe('HookRegistry', function () {
       expect(throwable([])).to.throw(error('Array'));
       expect(throwable(undefined)).to.throw(error('undefined'));
       expect(throwable(() => undefined)).to.throw(error('Function'));
-      throwable(HookType.PRE_HANDLER)();
+      throwable(RouterHookType.PRE_HANDLER)();
     });
 
     it('requires the parameter "hook" to be a Function', function () {
       const s = new HookRegistry();
-      const throwable = v => () => s.addHook(HookType.PRE_HANDLER, v);
+      const throwable = v => () => s.addHook(RouterHookType.PRE_HANDLER, v);
       const error = v =>
         format(
           'The hook "preHandler" should be a Function, but %s was given.',
@@ -47,14 +47,14 @@ describe('HookRegistry', function () {
     it('requires the parameter "type" to be a supported hook', function () {
       const s = new HookRegistry();
       const hook = () => undefined;
-      Object.values(HookType).forEach(type => s.addHook(type, hook));
+      Object.values(RouterHookType).forEach(type => s.addHook(type, hook));
       const throwable = () => s.addHook('unknown', hook);
       expect(throwable).to.throw('The hook type "unknown" is not supported.');
     });
 
     it('sets the given function to the map array by the hook type', function () {
       const s = new HookRegistry();
-      const type = HookType.PRE_HANDLER;
+      const type = RouterHookType.PRE_HANDLER;
       const hook = () => undefined;
       s.addHook(type, hook);
       expect(s._hooks.get(type)).to.include(hook);
@@ -63,7 +63,7 @@ describe('HookRegistry', function () {
     it('returns this', function () {
       const s = new HookRegistry();
       const hook = () => undefined;
-      const type = HookType.PRE_HANDLER;
+      const type = RouterHookType.PRE_HANDLER;
       const res = s.addHook(type, hook);
       expect(res).to.be.eq(s);
     });
@@ -85,12 +85,12 @@ describe('HookRegistry', function () {
       expect(throwable([])).to.throw(error('Array'));
       expect(throwable(undefined)).to.throw(error('undefined'));
       expect(throwable(() => undefined)).to.throw(error('Function'));
-      throwable(HookType.PRE_HANDLER)();
+      throwable(RouterHookType.PRE_HANDLER)();
     });
 
     it('requires the parameter "hook" to be a Function', function () {
       const s = new HookRegistry();
-      const throwable = v => () => s.hasHook(HookType.PRE_HANDLER, v);
+      const throwable = v => () => s.hasHook(RouterHookType.PRE_HANDLER, v);
       const error = v =>
         format(
           'The hook "preHandler" should be a Function, but %s was given.',
@@ -112,14 +112,14 @@ describe('HookRegistry', function () {
     it('requires the parameter "type" to be a supported hook', function () {
       const s = new HookRegistry();
       const hook = () => undefined;
-      Object.values(HookType).forEach(type => s.hasHook(type, hook));
+      Object.values(RouterHookType).forEach(type => s.hasHook(type, hook));
       const throwable = () => s.hasHook('unknown', hook);
       expect(throwable).to.throw('The hook type "unknown" is not supported.');
     });
 
     it('returns true if the given hook is set or false', function () {
       const s = new HookRegistry();
-      const type = HookType.PRE_HANDLER;
+      const type = RouterHookType.PRE_HANDLER;
       const hook = () => undefined;
       expect(s.hasHook(type, hook)).to.be.false;
       s.addHook(type, hook);
@@ -143,12 +143,12 @@ describe('HookRegistry', function () {
       expect(throwable([])).to.throw(error('Array'));
       expect(throwable(undefined)).to.throw(error('undefined'));
       expect(throwable(() => undefined)).to.throw(error('Function'));
-      throwable(HookType.PRE_HANDLER)();
+      throwable(RouterHookType.PRE_HANDLER)();
     });
 
     it('requires the parameter "type" to be a supported hook', function () {
       const s = new HookRegistry();
-      Object.values(HookType).forEach(type => s.getHooks(type));
+      Object.values(RouterHookType).forEach(type => s.getHooks(type));
       const throwable = () => s.getHooks('unknown');
       expect(throwable).to.throw('The hook type "unknown" is not supported.');
     });
@@ -156,7 +156,7 @@ describe('HookRegistry', function () {
     it('returns existing hooks', function () {
       const s = new HookRegistry();
       const hook = () => undefined;
-      const type = HookType.PRE_HANDLER;
+      const type = RouterHookType.PRE_HANDLER;
       const res1 = s.getHooks(type);
       expect(res1).to.be.eql([]);
       s.addHook(type, hook);
@@ -167,7 +167,7 @@ describe('HookRegistry', function () {
 
     it('returns an empty array if no hook exists', function () {
       const s = new HookRegistry();
-      const res = s.getHooks(HookType.PRE_HANDLER);
+      const res = s.getHooks(RouterHookType.PRE_HANDLER);
       expect(res).to.be.eql([]);
     });
   });

+ 3 - 3
src/route.js

@@ -1,7 +1,7 @@
 import {Errorf} from '@e22m4u/js-format';
-import {HookType} from './hooks/index.js';
 import {Debuggable} from '@e22m4u/js-debug';
 import {HookRegistry} from './hooks/index.js';
+import {RouterHookType} from './hooks/index.js';
 import {getRequestPathname} from './utils/index.js';
 import {MODULE_DEBUG_NAMESPACE} from './debuggable-service.js';
 
@@ -153,7 +153,7 @@ export class Route extends Debuggable {
         ? routeDef.preHandler
         : [routeDef.preHandler];
       preHandlerHooks.forEach(hook => {
-        this._hookRegistry.addHook(HookType.PRE_HANDLER, hook);
+        this._hookRegistry.addHook(RouterHookType.PRE_HANDLER, hook);
       });
     }
     if (routeDef.postHandler != null) {
@@ -161,7 +161,7 @@ export class Route extends Debuggable {
         ? routeDef.postHandler
         : [routeDef.postHandler];
       postHandlerHooks.forEach(hook => {
-        this._hookRegistry.addHook(HookType.POST_HANDLER, hook);
+        this._hookRegistry.addHook(RouterHookType.POST_HANDLER, hook);
       });
     }
     this.ctorDebug('A new route %s %v was created.', this._method, this._path);

+ 13 - 13
src/route.spec.js

@@ -2,7 +2,7 @@ import {Route} from './route.js';
 import {expect} from './chai.js';
 import {HttpMethod} from './route.js';
 import {format} from '@e22m4u/js-format';
-import {HookType} from './hooks/index.js';
+import {RouterHookType} from './hooks/index.js';
 import {createRequestMock} from './utils/index.js';
 import {createResponseMock} from './utils/index.js';
 import {RequestContext} from './request-context.js';
@@ -238,8 +238,8 @@ describe('Route', function () {
         preHandler: value,
         handler: () => undefined,
       });
-      expect(route.hookRegistry.hasHook(HookType.PRE_HANDLER, value)).to.be
-        .true;
+      expect(route.hookRegistry.hasHook(RouterHookType.PRE_HANDLER, value)).to
+        .be.true;
     });
 
     it('adds Function items of an Array to "preHandler" hooks', function () {
@@ -250,10 +250,10 @@ describe('Route', function () {
         preHandler: value,
         handler: () => undefined,
       });
-      expect(route.hookRegistry.hasHook(HookType.PRE_HANDLER, value[0])).to.be
-        .true;
-      expect(route.hookRegistry.hasHook(HookType.PRE_HANDLER, value[1])).to.be
-        .true;
+      expect(route.hookRegistry.hasHook(RouterHookType.PRE_HANDLER, value[0]))
+        .to.be.true;
+      expect(route.hookRegistry.hasHook(RouterHookType.PRE_HANDLER, value[1]))
+        .to.be.true;
     });
 
     it('adds a Function to "postHandler" hooks', function () {
@@ -264,8 +264,8 @@ describe('Route', function () {
         handler: () => undefined,
         postHandler: value,
       });
-      expect(route.hookRegistry.hasHook(HookType.POST_HANDLER, value)).to.be
-        .true;
+      expect(route.hookRegistry.hasHook(RouterHookType.POST_HANDLER, value)).to
+        .be.true;
     });
 
     it('adds Function items of an Array to "postHandler" hooks', function () {
@@ -276,10 +276,10 @@ describe('Route', function () {
         handler: () => undefined,
         postHandler: value,
       });
-      expect(route.hookRegistry.hasHook(HookType.POST_HANDLER, value[0])).to.be
-        .true;
-      expect(route.hookRegistry.hasHook(HookType.POST_HANDLER, value[1])).to.be
-        .true;
+      expect(route.hookRegistry.hasHook(RouterHookType.POST_HANDLER, value[0]))
+        .to.be.true;
+      expect(route.hookRegistry.hasHook(RouterHookType.POST_HANDLER, value[1]))
+        .to.be.true;
     });
   });
 

+ 7 - 4
src/trie-router.d.ts

@@ -4,8 +4,8 @@ import {RouteDefinition} from './route.js';
 import {DebuggableService} from './debuggable-service.js';
 
 import {
-  HookType,
   RouterHook,
+  RouterHookType,
   PostHandlerHook,
   PreHandlerHook,
 } from './hooks/index.js';
@@ -67,7 +67,7 @@ export declare class TrieRouter extends DebuggableService {
    * @param type
    * @param hook
    */
-  addHook(type: typeof HookType.PRE_HANDLER, hook: PreHandlerHook): this;
+  addHook(type: typeof RouterHookType.PRE_HANDLER, hook: PreHandlerHook): this;
 
   /**
    * Add hook.
@@ -75,7 +75,10 @@ export declare class TrieRouter extends DebuggableService {
    * @param type
    * @param hook
    */
-  addHook(type: typeof HookType.POST_HANDLER, hook: PostHandlerHook): this;
+  addHook(
+    type: typeof RouterHookType.POST_HANDLER,
+    hook: PostHandlerHook,
+  ): this;
 
   /**
    * Add hook.
@@ -83,5 +86,5 @@ export declare class TrieRouter extends DebuggableService {
    * @param type
    * @param hook
    */
-  addHook(type: HookType, hook: RouterHook): this;
+  addHook(type: RouterHookType, hook: RouterHook): this;
 }

+ 6 - 6
src/trie-router.js

@@ -1,12 +1,12 @@
 import {ServerResponse} from 'http';
 import {IncomingMessage} from 'http';
-import {HookType} from './hooks/index.js';
 import {isPromise} from './utils/index.js';
 import {HookInvoker} from './hooks/index.js';
 import {DataSender} from './senders/index.js';
 import {HookRegistry} from './hooks/index.js';
 import {ErrorSender} from './senders/index.js';
 import {isResponseSent} from './utils/index.js';
+import {RouterHookType} from './hooks/index.js';
 import {RequestParser} from './parsers/index.js';
 import {RouteRegistry} from './route-registry.js';
 import {RequestContext} from './request-context.js';
@@ -134,7 +134,7 @@ export class TrieRouter extends DebuggableService {
         // то такое значение используется в качестве ответа
         data = hookInvoker.invokeAndContinueUntilValueReceived(
           route,
-          HookType.PRE_HANDLER,
+          RouterHookType.PRE_HANDLER,
           res,
           context,
         );
@@ -150,7 +150,7 @@ export class TrieRouter extends DebuggableService {
           // также может быть использован в качестве ответа
           let postHandlerData = hookInvoker.invokeAndContinueUntilValueReceived(
             route,
-            HookType.POST_HANDLER,
+            RouterHookType.POST_HANDLER,
             res,
             context,
             data,
@@ -178,20 +178,20 @@ export class TrieRouter extends DebuggableService {
    * Example:
    * ```
    * import {TrieRouter} from '@e22m4u/js-trie-router';
-   * import {HookType} from '@e22m4u/js-trie-router';
+   * import {RouterHookType} from '@e22m4u/js-trie-router';
    *
    * // Router instance.
    * const router = new TrieRouter();
    *
    * // Adds the "preHandler" hook for each route.
    * router.addHook(
-   *   HookType.PRE_HANDLER,
+   *   RouterHookType.PRE_HANDLER,
    *   ctx => { ... },
    * );
    *
    * // Adds the "postHandler" hook for each route.
    * router.addHook(
-   *   HookType.POST_HANDLER,
+   *   RouterHookType.POST_HANDLER,
    *   ctx => { ... },
    * );
    * ```

+ 2 - 2
src/trie-router.spec.js

@@ -3,11 +3,11 @@ import {expect} from './chai.js';
 import {ServerResponse} from 'http';
 import {IncomingMessage} from 'http';
 import {HttpMethod} from './route.js';
-import {HookType} from './hooks/index.js';
 import {TrieRouter} from './trie-router.js';
 import {HookRegistry} from './hooks/index.js';
 import {DataSender} from './senders/index.js';
 import {ErrorSender} from './senders/index.js';
+import {RouterHookType} from './hooks/index.js';
 import {createRequestMock} from './utils/index.js';
 import {createResponseMock} from './utils/index.js';
 import {RequestContext} from './request-context.js';
@@ -563,7 +563,7 @@ describe('TrieRouter', function () {
     it('adds the given hook to the HookRegistry and returns itself', function () {
       const router = new TrieRouter();
       const reg = router.getService(HookRegistry);
-      const type = HookType.PRE_HANDLER;
+      const type = RouterHookType.PRE_HANDLER;
       const hook = () => undefined;
       expect(reg.hasHook(type, hook)).to.be.false;
       const res = router.addHook(type, hook);