Browse Source

refactor: improve linting

e22m4u 3 days ago
parent
commit
2919826aa8

+ 0 - 5
.mocharc.cjs

@@ -1,5 +0,0 @@
-module.exports = {
-  extension: ['js'],
-  spec: 'src/**/*.spec.js',
-  require: ['./mocha-setup.js'],
-}

+ 5 - 0
.mocharc.json

@@ -0,0 +1,5 @@
+{
+  "extension": ["js"],
+  "spec": "src/**/*.spec.js",
+  "require": "./mocha.setup.js"
+}

+ 82 - 83
dist/cjs/index.cjs

@@ -71,11 +71,11 @@ __export(index_exports, {
 module.exports = __toCommonJS(index_exports);
 module.exports = __toCommonJS(index_exports);
 
 
 // src/route.js
 // src/route.js
-var import_js_format14 = require("@e22m4u/js-format");
+var import_js_format13 = require("@e22m4u/js-format");
 var import_js_debug = require("@e22m4u/js-debug");
 var import_js_debug = require("@e22m4u/js-debug");
 
 
 // src/hooks/hook-invoker.js
 // src/hooks/hook-invoker.js
-var import_js_format13 = require("@e22m4u/js-format");
+var import_js_format12 = require("@e22m4u/js-format");
 
 
 // src/debuggable-service.js
 // src/debuggable-service.js
 var import_js_service = require("@e22m4u/js-service");
 var import_js_service = require("@e22m4u/js-service");
@@ -131,15 +131,14 @@ __name(isPromise, "isPromise");
 
 
 // src/utils/create-error.js
 // src/utils/create-error.js
 var import_js_format = require("@e22m4u/js-format");
 var import_js_format = require("@e22m4u/js-format");
-var import_js_format2 = require("@e22m4u/js-format");
 function createError(errorCtor, message, ...args) {
 function createError(errorCtor, message, ...args) {
   if (typeof errorCtor !== "function")
   if (typeof errorCtor !== "function")
-    throw new import_js_format2.Errorf(
+    throw new import_js_format.Errorf(
       'The first argument of "createError" should be a constructor, but %v was given.',
       'The first argument of "createError" should be a constructor, but %v was given.',
       errorCtor
       errorCtor
     );
     );
   if (message != null && typeof message !== "string")
   if (message != null && typeof message !== "string")
-    throw new import_js_format2.Errorf(
+    throw new import_js_format.Errorf(
       'The second argument of "createError" should be a String, but %v was given.',
       'The second argument of "createError" should be a String, but %v was given.',
       message
       message
     );
     );
@@ -150,10 +149,10 @@ function createError(errorCtor, message, ...args) {
 __name(createError, "createError");
 __name(createError, "createError");
 
 
 // src/utils/parse-cookies.js
 // src/utils/parse-cookies.js
-var import_js_format3 = require("@e22m4u/js-format");
+var import_js_format2 = require("@e22m4u/js-format");
 function parseCookies(input) {
 function parseCookies(input) {
   if (typeof input !== "string")
   if (typeof input !== "string")
-    throw new import_js_format3.Errorf(
+    throw new import_js_format2.Errorf(
       'The first parameter of "parseCookies" should be a String, but %v was given.',
       'The first parameter of "parseCookies" should be a String, but %v was given.',
       input
       input
     );
     );
@@ -167,10 +166,10 @@ function parseCookies(input) {
 __name(parseCookies, "parseCookies");
 __name(parseCookies, "parseCookies");
 
 
 // src/utils/to-camel-case.js
 // src/utils/to-camel-case.js
-var import_js_format4 = require("@e22m4u/js-format");
+var import_js_format3 = require("@e22m4u/js-format");
 function toCamelCase(input) {
 function toCamelCase(input) {
   if (typeof input !== "string")
   if (typeof input !== "string")
-    throw new import_js_format4.Errorf(
+    throw new import_js_format3.Errorf(
       'The first argument of "toCamelCase" should be a String, but %v was given.',
       'The first argument of "toCamelCase" should be a String, but %v was given.',
       input
       input
     );
     );
@@ -180,26 +179,26 @@ __name(toCamelCase, "toCamelCase");
 
 
 // src/utils/create-debugger.js
 // src/utils/create-debugger.js
 var import_debug = __toESM(require("debug"), 1);
 var import_debug = __toESM(require("debug"), 1);
-var import_js_format5 = require("@e22m4u/js-format");
+var import_js_format4 = require("@e22m4u/js-format");
 function createDebugger(name) {
 function createDebugger(name) {
   if (typeof name !== "string")
   if (typeof name !== "string")
-    throw new import_js_format5.Errorf(
+    throw new import_js_format4.Errorf(
       'The first argument of "createDebugger" should be a String, but %v was given.',
       'The first argument of "createDebugger" should be a String, but %v was given.',
       name
       name
     );
     );
   const debug = (0, import_debug.default)(`jsTrieRouter:${name}`);
   const debug = (0, import_debug.default)(`jsTrieRouter:${name}`);
   return function(message, ...args) {
   return function(message, ...args) {
-    const interpolatedMessage = (0, import_js_format5.format)(message, ...args);
+    const interpolatedMessage = (0, import_js_format4.format)(message, ...args);
     return debug(interpolatedMessage);
     return debug(interpolatedMessage);
   };
   };
 }
 }
 __name(createDebugger, "createDebugger");
 __name(createDebugger, "createDebugger");
 
 
 // src/utils/is-response-sent.js
 // src/utils/is-response-sent.js
-var import_js_format6 = require("@e22m4u/js-format");
+var import_js_format5 = require("@e22m4u/js-format");
 function isResponseSent(response) {
 function isResponseSent(response) {
   if (!response || typeof response !== "object" || Array.isArray(response) || typeof response.headersSent !== "boolean") {
   if (!response || typeof response !== "object" || Array.isArray(response) || typeof response.headersSent !== "boolean") {
-    throw new import_js_format6.Errorf(
+    throw new import_js_format5.Errorf(
       'The first argument of "isResponseSent" should be an instance of ServerResponse, but %v was given.',
       'The first argument of "isResponseSent" should be an instance of ServerResponse, but %v was given.',
       response
       response
     );
     );
@@ -226,10 +225,10 @@ function isReadableStream(value) {
 __name(isReadableStream, "isReadableStream");
 __name(isReadableStream, "isReadableStream");
 
 
 // src/utils/parse-content-type.js
 // src/utils/parse-content-type.js
-var import_js_format7 = require("@e22m4u/js-format");
+var import_js_format6 = require("@e22m4u/js-format");
 function parseContentType(input) {
 function parseContentType(input) {
   if (typeof input !== "string")
   if (typeof input !== "string")
-    throw new import_js_format7.Errorf(
+    throw new import_js_format6.Errorf(
       'The parameter "input" of "parseContentType" should be a String, but %v was given.',
       'The parameter "input" of "parseContentType" should be a String, but %v was given.',
       input
       input
     );
     );
@@ -255,7 +254,7 @@ __name(isWritableStream, "isWritableStream");
 // src/utils/fetch-request-body.js
 // src/utils/fetch-request-body.js
 var import_http_errors = __toESM(require("http-errors"), 1);
 var import_http_errors = __toESM(require("http-errors"), 1);
 var import_http = require("http");
 var import_http = require("http");
-var import_js_format8 = require("@e22m4u/js-format");
+var import_js_format7 = require("@e22m4u/js-format");
 var CHARACTER_ENCODING_LIST = [
 var CHARACTER_ENCODING_LIST = [
   "ascii",
   "ascii",
   "utf8",
   "utf8",
@@ -268,12 +267,12 @@ var CHARACTER_ENCODING_LIST = [
 ];
 ];
 function fetchRequestBody(request, bodyBytesLimit = 0) {
 function fetchRequestBody(request, bodyBytesLimit = 0) {
   if (!(request instanceof import_http.IncomingMessage))
   if (!(request instanceof import_http.IncomingMessage))
-    throw new import_js_format8.Errorf(
+    throw new import_js_format7.Errorf(
       'The first parameter of "fetchRequestBody" should be an IncomingMessage instance, but %v was given.',
       'The first parameter of "fetchRequestBody" should be an IncomingMessage instance, but %v was given.',
       request
       request
     );
     );
   if (typeof bodyBytesLimit !== "number")
   if (typeof bodyBytesLimit !== "number")
-    throw new import_js_format8.Errorf(
+    throw new import_js_format7.Errorf(
       'The parameter "bodyBytesLimit" of "fetchRequestBody" should be a number, but %v was given.',
       'The parameter "bodyBytesLimit" of "fetchRequestBody" should be a number, but %v was given.',
       bodyBytesLimit
       bodyBytesLimit
     );
     );
@@ -351,13 +350,13 @@ var import_net = require("net");
 var import_tls = require("tls");
 var import_tls = require("tls");
 var import_http2 = require("http");
 var import_http2 = require("http");
 var import_querystring = __toESM(require("querystring"), 1);
 var import_querystring = __toESM(require("querystring"), 1);
-var import_js_format10 = require("@e22m4u/js-format");
+var import_js_format9 = require("@e22m4u/js-format");
 
 
 // src/utils/create-cookies-string.js
 // src/utils/create-cookies-string.js
-var import_js_format9 = require("@e22m4u/js-format");
+var import_js_format8 = require("@e22m4u/js-format");
 function createCookiesString(data) {
 function createCookiesString(data) {
   if (!data || typeof data !== "object" || Array.isArray(data))
   if (!data || typeof data !== "object" || Array.isArray(data))
-    throw new import_js_format9.Errorf(
+    throw new import_js_format8.Errorf(
       'The first parameter of "createCookiesString" should be an Object, but %v was given.',
       'The first parameter of "createCookiesString" should be an Object, but %v was given.',
       data
       data
     );
     );
@@ -375,78 +374,78 @@ __name(createCookiesString, "createCookiesString");
 // src/utils/create-request-mock.js
 // src/utils/create-request-mock.js
 function createRequestMock(patch) {
 function createRequestMock(patch) {
   if (patch != null && typeof patch !== "object" || Array.isArray(patch)) {
   if (patch != null && typeof patch !== "object" || Array.isArray(patch)) {
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The first parameter of "createRequestMock" should be an Object, but %v was given.',
       'The first parameter of "createRequestMock" should be an Object, but %v was given.',
       patch
       patch
     );
     );
   }
   }
   patch = patch || {};
   patch = patch || {};
   if (patch.host != null && typeof patch.host !== "string")
   if (patch.host != null && typeof patch.host !== "string")
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "host" of "createRequestMock" should be a String, but %v was given.',
       'The parameter "host" of "createRequestMock" should be a String, but %v was given.',
       patch.host
       patch.host
     );
     );
   if (patch.method != null && typeof patch.method !== "string")
   if (patch.method != null && typeof patch.method !== "string")
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "method" of "createRequestMock" should be a String, but %v was given.',
       'The parameter "method" of "createRequestMock" should be a String, but %v was given.',
       patch.method
       patch.method
     );
     );
   if (patch.secure != null && typeof patch.secure !== "boolean")
   if (patch.secure != null && typeof patch.secure !== "boolean")
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "secure" of "createRequestMock" should be a Boolean, but %v was given.',
       'The parameter "secure" of "createRequestMock" should be a Boolean, but %v was given.',
       patch.secure
       patch.secure
     );
     );
   if (patch.path != null && typeof patch.path !== "string")
   if (patch.path != null && typeof patch.path !== "string")
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "path" of "createRequestMock" should be a String, but %v was given.',
       'The parameter "path" of "createRequestMock" should be a String, but %v was given.',
       patch.path
       patch.path
     );
     );
   if (patch.query != null && typeof patch.query !== "object" && typeof patch.query !== "string" || Array.isArray(patch.query)) {
   if (patch.query != null && typeof patch.query !== "object" && typeof patch.query !== "string" || Array.isArray(patch.query)) {
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "query" of "createRequestMock" should be a String or Object, but %v was given.',
       'The parameter "query" of "createRequestMock" should be a String or Object, but %v was given.',
       patch.query
       patch.query
     );
     );
   }
   }
   if (patch.cookies != null && typeof patch.cookies !== "string" && typeof patch.cookies !== "object" || Array.isArray(patch.cookies)) {
   if (patch.cookies != null && typeof patch.cookies !== "string" && typeof patch.cookies !== "object" || Array.isArray(patch.cookies)) {
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "cookies" of "createRequestMock" should be a String or Object, but %v was given.',
       'The parameter "cookies" of "createRequestMock" should be a String or Object, but %v was given.',
       patch.cookies
       patch.cookies
     );
     );
   }
   }
   if (patch.headers != null && typeof patch.headers !== "object" || Array.isArray(patch.headers)) {
   if (patch.headers != null && typeof patch.headers !== "object" || Array.isArray(patch.headers)) {
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "headers" of "createRequestMock" should be an Object, but %v was given.',
       'The parameter "headers" of "createRequestMock" should be an Object, but %v was given.',
       patch.headers
       patch.headers
     );
     );
   }
   }
   if (patch.stream != null && !isReadableStream(patch.stream))
   if (patch.stream != null && !isReadableStream(patch.stream))
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "stream" of "createRequestMock" should be a Stream, but %v was given.',
       'The parameter "stream" of "createRequestMock" should be a Stream, but %v was given.',
       patch.stream
       patch.stream
     );
     );
   if (patch.encoding != null) {
   if (patch.encoding != null) {
     if (typeof patch.encoding !== "string")
     if (typeof patch.encoding !== "string")
-      throw new import_js_format10.Errorf(
+      throw new import_js_format9.Errorf(
         'The parameter "encoding" of "createRequestMock" should be a String, but %v was given.',
         'The parameter "encoding" of "createRequestMock" should be a String, but %v was given.',
         patch.encoding
         patch.encoding
       );
       );
     if (!CHARACTER_ENCODING_LIST.includes(patch.encoding))
     if (!CHARACTER_ENCODING_LIST.includes(patch.encoding))
-      throw new import_js_format10.Errorf(
+      throw new import_js_format9.Errorf(
         "Character encoding %v is not supported.",
         "Character encoding %v is not supported.",
         patch.encoding
         patch.encoding
       );
       );
   }
   }
   if (patch.stream) {
   if (patch.stream) {
     if (patch.secure != null)
     if (patch.secure != null)
-      throw new import_js_format10.Errorf(
+      throw new import_js_format9.Errorf(
         'The "createRequestMock" does not allow specifying the "stream" and "secure" options simultaneously.'
         'The "createRequestMock" does not allow specifying the "stream" and "secure" options simultaneously.'
       );
       );
     if (patch.body != null)
     if (patch.body != null)
-      throw new import_js_format10.Errorf(
+      throw new import_js_format9.Errorf(
         'The "createRequestMock" does not allow specifying the "stream" and "body" options simultaneously.'
         'The "createRequestMock" does not allow specifying the "stream" and "body" options simultaneously.'
       );
       );
     if (patch.encoding != null)
     if (patch.encoding != null)
-      throw new import_js_format10.Errorf(
+      throw new import_js_format9.Errorf(
         'The "createRequestMock" does not allow specifying the "stream" and "encoding" options simultaneously.'
         'The "createRequestMock" does not allow specifying the "stream" and "encoding" options simultaneously.'
       );
       );
   }
   }
@@ -466,7 +465,7 @@ function createRequestMock(patch) {
 __name(createRequestMock, "createRequestMock");
 __name(createRequestMock, "createRequestMock");
 function createRequestStream(secure, body, encoding) {
 function createRequestStream(secure, body, encoding) {
   if (encoding != null && typeof encoding !== "string")
   if (encoding != null && typeof encoding !== "string")
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "encoding" of "createRequestStream" should be a String, but %v was given.',
       'The parameter "encoding" of "createRequestStream" should be a String, but %v was given.',
       encoding
       encoding
     );
     );
@@ -489,12 +488,12 @@ function createRequestStream(secure, body, encoding) {
 __name(createRequestStream, "createRequestStream");
 __name(createRequestStream, "createRequestStream");
 function createRequestUrl(path, query) {
 function createRequestUrl(path, query) {
   if (typeof path !== "string")
   if (typeof path !== "string")
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "path" of "createRequestUrl" should be a String, but %v was given.',
       'The parameter "path" of "createRequestUrl" should be a String, but %v was given.',
       path
       path
     );
     );
   if (query != null && typeof query !== "string" && typeof query !== "object" || Array.isArray(query)) {
   if (query != null && typeof query !== "string" && typeof query !== "object" || Array.isArray(query)) {
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "query" of "createRequestUrl" should be a String or Object, but %v was given.',
       'The parameter "query" of "createRequestUrl" should be a String or Object, but %v was given.',
       query
       query
     );
     );
@@ -511,32 +510,32 @@ function createRequestUrl(path, query) {
 __name(createRequestUrl, "createRequestUrl");
 __name(createRequestUrl, "createRequestUrl");
 function createRequestHeaders(host, secure, body, cookies, encoding, headers) {
 function createRequestHeaders(host, secure, body, cookies, encoding, headers) {
   if (host != null && typeof host !== "string")
   if (host != null && typeof host !== "string")
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "host" of "createRequestHeaders" a non-empty String, but %v was given.',
       'The parameter "host" of "createRequestHeaders" a non-empty String, but %v was given.',
       host
       host
     );
     );
   host = host || "localhost";
   host = host || "localhost";
   if (secure != null && typeof secure !== "boolean")
   if (secure != null && typeof secure !== "boolean")
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "secure" of "createRequestHeaders" should be a String, but %v was given.',
       'The parameter "secure" of "createRequestHeaders" should be a String, but %v was given.',
       secure
       secure
     );
     );
   secure = Boolean(secure);
   secure = Boolean(secure);
   if (cookies != null && typeof cookies !== "object" && typeof cookies !== "string" || Array.isArray(cookies)) {
   if (cookies != null && typeof cookies !== "object" && typeof cookies !== "string" || Array.isArray(cookies)) {
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "cookies" of "createRequestHeaders" should be a String or Object, but %v was given.',
       'The parameter "cookies" of "createRequestHeaders" should be a String or Object, but %v was given.',
       cookies
       cookies
     );
     );
   }
   }
   if (headers != null && typeof headers !== "object" || Array.isArray(headers)) {
   if (headers != null && typeof headers !== "object" || Array.isArray(headers)) {
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "headers" of "createRequestHeaders" should be an Object, but %v was given.',
       'The parameter "headers" of "createRequestHeaders" should be an Object, but %v was given.',
       headers
       headers
     );
     );
   }
   }
   headers = headers || {};
   headers = headers || {};
   if (encoding != null && typeof encoding !== "string")
   if (encoding != null && typeof encoding !== "string")
-    throw new import_js_format10.Errorf(
+    throw new import_js_format9.Errorf(
       'The parameter "encoding" of "createRequestHeaders" should be a String, but %v was given.',
       'The parameter "encoding" of "createRequestHeaders" should be a String, but %v was given.',
       encoding
       encoding
     );
     );
@@ -685,10 +684,10 @@ function patchBody(response) {
 __name(patchBody, "patchBody");
 __name(patchBody, "patchBody");
 
 
 // src/utils/get-request-pathname.js
 // src/utils/get-request-pathname.js
-var import_js_format11 = require("@e22m4u/js-format");
+var import_js_format10 = require("@e22m4u/js-format");
 function getRequestPathname(request) {
 function getRequestPathname(request) {
   if (!request || typeof request !== "object" || Array.isArray(request) || typeof request.url !== "string") {
   if (!request || typeof request !== "object" || Array.isArray(request) || typeof request.url !== "string") {
-    throw new import_js_format11.Errorf(
+    throw new import_js_format10.Errorf(
       'The first argument of "getRequestPathname" should be an instance of IncomingMessage, but %v was given.',
       'The first argument of "getRequestPathname" should be an instance of IncomingMessage, but %v was given.',
       request
       request
     );
     );
@@ -698,7 +697,7 @@ function getRequestPathname(request) {
 __name(getRequestPathname, "getRequestPathname");
 __name(getRequestPathname, "getRequestPathname");
 
 
 // src/hooks/hook-registry.js
 // src/hooks/hook-registry.js
-var import_js_format12 = require("@e22m4u/js-format");
+var import_js_format11 = require("@e22m4u/js-format");
 var RouterHookType = {
 var RouterHookType = {
   PRE_HANDLER: "preHandler",
   PRE_HANDLER: "preHandler",
   POST_HANDLER: "postHandler"
   POST_HANDLER: "postHandler"
@@ -720,11 +719,11 @@ var _HookRegistry = class _HookRegistry {
    */
    */
   addHook(type, hook) {
   addHook(type, hook) {
     if (!type || typeof type !== "string")
     if (!type || typeof type !== "string")
-      throw new import_js_format12.Errorf("The hook type is required, but %v was given.", type);
+      throw new import_js_format11.Errorf("The hook type is required, but %v was given.", type);
     if (!Object.values(RouterHookType).includes(type))
     if (!Object.values(RouterHookType).includes(type))
-      throw new import_js_format12.Errorf("The hook type %v is not supported.", type);
+      throw new import_js_format11.Errorf("The hook type %v is not supported.", type);
     if (!hook || typeof hook !== "function")
     if (!hook || typeof hook !== "function")
-      throw new import_js_format12.Errorf(
+      throw new import_js_format11.Errorf(
         "The hook %v should be a Function, but %v was given.",
         "The hook %v should be a Function, but %v was given.",
         type,
         type,
         hook
         hook
@@ -743,11 +742,11 @@ var _HookRegistry = class _HookRegistry {
    */
    */
   hasHook(type, hook) {
   hasHook(type, hook) {
     if (!type || typeof type !== "string")
     if (!type || typeof type !== "string")
-      throw new import_js_format12.Errorf("The hook type is required, but %v was given.", type);
+      throw new import_js_format11.Errorf("The hook type is required, but %v was given.", type);
     if (!Object.values(RouterHookType).includes(type))
     if (!Object.values(RouterHookType).includes(type))
-      throw new import_js_format12.Errorf("The hook type %v is not supported.", type);
+      throw new import_js_format11.Errorf("The hook type %v is not supported.", type);
     if (!hook || typeof hook !== "function")
     if (!hook || typeof hook !== "function")
-      throw new import_js_format12.Errorf(
+      throw new import_js_format11.Errorf(
         "The hook %v should be a Function, but %v was given.",
         "The hook %v should be a Function, but %v was given.",
         type,
         type,
         hook
         hook
@@ -763,9 +762,9 @@ var _HookRegistry = class _HookRegistry {
    */
    */
   getHooks(type) {
   getHooks(type) {
     if (!type || typeof type !== "string")
     if (!type || typeof type !== "string")
-      throw new import_js_format12.Errorf("The hook type is required, but %v was given.", type);
+      throw new import_js_format11.Errorf("The hook type is required, but %v was given.", type);
     if (!Object.values(RouterHookType).includes(type))
     if (!Object.values(RouterHookType).includes(type))
-      throw new import_js_format12.Errorf("The hook type %v is not supported.", type);
+      throw new import_js_format11.Errorf("The hook type %v is not supported.", type);
     return this._hooks.get(type) || [];
     return this._hooks.get(type) || [];
   }
   }
 };
 };
@@ -785,19 +784,19 @@ var _HookInvoker = class _HookInvoker extends DebuggableService {
    */
    */
   invokeAndContinueUntilValueReceived(route, hookType, response, ...args) {
   invokeAndContinueUntilValueReceived(route, hookType, response, ...args) {
     if (!route || !(route instanceof Route))
     if (!route || !(route instanceof Route))
-      throw new import_js_format13.Errorf(
+      throw new import_js_format12.Errorf(
         'The parameter "route" of the HookInvoker.invokeAndContinueUntilValueReceived should be a Route instance, but %v was given.',
         'The parameter "route" of the HookInvoker.invokeAndContinueUntilValueReceived should be a Route instance, but %v was given.',
         route
         route
       );
       );
     if (!hookType || typeof hookType !== "string")
     if (!hookType || typeof hookType !== "string")
-      throw new import_js_format13.Errorf(
+      throw new import_js_format12.Errorf(
         'The parameter "hookType" of the HookInvoker.invokeAndContinueUntilValueReceived should be a non-empty String, but %v was given.',
         'The parameter "hookType" of the HookInvoker.invokeAndContinueUntilValueReceived should be a non-empty String, but %v was given.',
         hookType
         hookType
       );
       );
     if (!Object.values(RouterHookType).includes(hookType))
     if (!Object.values(RouterHookType).includes(hookType))
-      throw new import_js_format13.Errorf("The hook type %v is not supported.", hookType);
+      throw new import_js_format12.Errorf("The hook type %v is not supported.", hookType);
     if (!response || typeof response !== "object" || Array.isArray(response) || typeof response.headersSent !== "boolean") {
     if (!response || typeof response !== "object" || Array.isArray(response) || typeof response.headersSent !== "boolean") {
-      throw new import_js_format13.Errorf(
+      throw new import_js_format12.Errorf(
         'The parameter "response" of the HookInvoker.invokeAndContinueUntilValueReceived should be a ServerResponse instance, but %v was given.',
         'The parameter "response" of the HookInvoker.invokeAndContinueUntilValueReceived should be a ServerResponse instance, but %v was given.',
         response
         response
       );
       );
@@ -942,30 +941,30 @@ var _Route = class _Route extends import_js_debug.Debuggable {
       noInstantiationMessage: true
       noInstantiationMessage: true
     });
     });
     if (!routeDef || typeof routeDef !== "object" || Array.isArray(routeDef))
     if (!routeDef || typeof routeDef !== "object" || Array.isArray(routeDef))
-      throw new import_js_format14.Errorf(
+      throw new import_js_format13.Errorf(
         "The first parameter of Route.constructor should be an Object, but %v was given.",
         "The first parameter of Route.constructor should be an Object, but %v was given.",
         routeDef
         routeDef
       );
       );
     if (!routeDef.method || typeof routeDef.method !== "string")
     if (!routeDef.method || typeof routeDef.method !== "string")
-      throw new import_js_format14.Errorf(
+      throw new import_js_format13.Errorf(
         'The option "method" of the Route should be a non-empty String, but %v was given.',
         'The option "method" of the Route should be a non-empty String, but %v was given.',
         routeDef.method
         routeDef.method
       );
       );
     this._method = routeDef.method.toUpperCase();
     this._method = routeDef.method.toUpperCase();
     if (typeof routeDef.path !== "string")
     if (typeof routeDef.path !== "string")
-      throw new import_js_format14.Errorf(
+      throw new import_js_format13.Errorf(
         'The option "path" of the Route should be a String, but %v was given.',
         'The option "path" of the Route should be a String, but %v was given.',
         routeDef.path
         routeDef.path
       );
       );
     this._path = routeDef.path;
     this._path = routeDef.path;
     if (typeof routeDef.handler !== "function")
     if (typeof routeDef.handler !== "function")
-      throw new import_js_format14.Errorf(
+      throw new import_js_format13.Errorf(
         'The option "handler" of the Route should be a Function, but %v was given.',
         'The option "handler" of the Route should be a Function, but %v was given.',
         routeDef.handler
         routeDef.handler
       );
       );
     if (routeDef.meta != null) {
     if (routeDef.meta != null) {
       if (typeof routeDef.meta !== "object" || Array.isArray(routeDef.meta))
       if (typeof routeDef.meta !== "object" || Array.isArray(routeDef.meta))
-        throw new import_js_format14.Errorf(
+        throw new import_js_format13.Errorf(
           'The option "meta" of the Route should be a plain Object, but %v was given.',
           'The option "meta" of the Route should be a plain Object, but %v was given.',
           routeDef.meta
           routeDef.meta
         );
         );
@@ -1008,10 +1007,10 @@ var Route = _Route;
 
 
 // src/parsers/body-parser.js
 // src/parsers/body-parser.js
 var import_http_errors2 = __toESM(require("http-errors"), 1);
 var import_http_errors2 = __toESM(require("http-errors"), 1);
-var import_js_format16 = require("@e22m4u/js-format");
+var import_js_format15 = require("@e22m4u/js-format");
 
 
 // src/router-options.js
 // src/router-options.js
-var import_js_format15 = require("@e22m4u/js-format");
+var import_js_format14 = require("@e22m4u/js-format");
 var _RouterOptions = class _RouterOptions extends DebuggableService {
 var _RouterOptions = class _RouterOptions extends DebuggableService {
   /**
   /**
    * Request body bytes limit.
    * Request body bytes limit.
@@ -1037,7 +1036,7 @@ var _RouterOptions = class _RouterOptions extends DebuggableService {
    */
    */
   setRequestBodyBytesLimit(input) {
   setRequestBodyBytesLimit(input) {
     if (typeof input !== "number" || input < 0)
     if (typeof input !== "number" || input < 0)
-      throw new import_js_format15.Errorf(
+      throw new import_js_format14.Errorf(
         'The option "requestBodyBytesLimit" must be a positive Number or 0, but %v was given.',
         'The option "requestBodyBytesLimit" must be a positive Number or 0, but %v was given.',
         input
         input
       );
       );
@@ -1070,12 +1069,12 @@ var _BodyParser = class _BodyParser extends DebuggableService {
    */
    */
   defineParser(mediaType, parser) {
   defineParser(mediaType, parser) {
     if (!mediaType || typeof mediaType !== "string")
     if (!mediaType || typeof mediaType !== "string")
-      throw new import_js_format16.Errorf(
+      throw new import_js_format15.Errorf(
         'The parameter "mediaType" of BodyParser.defineParser should be a non-empty String, but %v was given.',
         'The parameter "mediaType" of BodyParser.defineParser should be a non-empty String, but %v was given.',
         mediaType
         mediaType
       );
       );
     if (!parser || typeof parser !== "function")
     if (!parser || typeof parser !== "function")
-      throw new import_js_format16.Errorf(
+      throw new import_js_format15.Errorf(
         'The parameter "parser" of BodyParser.defineParser should be a Function, but %v was given.',
         'The parameter "parser" of BodyParser.defineParser should be a Function, but %v was given.',
         parser
         parser
       );
       );
@@ -1090,7 +1089,7 @@ var _BodyParser = class _BodyParser extends DebuggableService {
    */
    */
   hasParser(mediaType) {
   hasParser(mediaType) {
     if (!mediaType || typeof mediaType !== "string")
     if (!mediaType || typeof mediaType !== "string")
-      throw new import_js_format16.Errorf(
+      throw new import_js_format15.Errorf(
         'The parameter "mediaType" of BodyParser.hasParser should be a non-empty String, but %v was given.',
         'The parameter "mediaType" of BodyParser.hasParser should be a non-empty String, but %v was given.',
         mediaType
         mediaType
       );
       );
@@ -1104,12 +1103,12 @@ var _BodyParser = class _BodyParser extends DebuggableService {
    */
    */
   deleteParser(mediaType) {
   deleteParser(mediaType) {
     if (!mediaType || typeof mediaType !== "string")
     if (!mediaType || typeof mediaType !== "string")
-      throw new import_js_format16.Errorf(
+      throw new import_js_format15.Errorf(
         'The parameter "mediaType" of BodyParser.deleteParser should be a non-empty String, but %v was given.',
         'The parameter "mediaType" of BodyParser.deleteParser should be a non-empty String, but %v was given.',
         mediaType
         mediaType
       );
       );
     const parser = this._parsers[mediaType];
     const parser = this._parsers[mediaType];
-    if (!parser) throw new import_js_format16.Errorf("The parser of %v is not found.", mediaType);
+    if (!parser) throw new import_js_format15.Errorf("The parser of %v is not found.", mediaType);
     delete this._parsers[mediaType];
     delete this._parsers[mediaType];
     return this;
     return this;
   }
   }
@@ -1238,7 +1237,7 @@ var CookiesParser = _CookiesParser;
 
 
 // src/parsers/request-parser.js
 // src/parsers/request-parser.js
 var import_http3 = require("http");
 var import_http3 = require("http");
-var import_js_format17 = require("@e22m4u/js-format");
+var import_js_format16 = require("@e22m4u/js-format");
 var _RequestParser = class _RequestParser extends DebuggableService {
 var _RequestParser = class _RequestParser extends DebuggableService {
   /**
   /**
    * Parse.
    * Parse.
@@ -1248,7 +1247,7 @@ var _RequestParser = class _RequestParser extends DebuggableService {
    */
    */
   parse(request) {
   parse(request) {
     if (!(request instanceof import_http3.IncomingMessage))
     if (!(request instanceof import_http3.IncomingMessage))
-      throw new import_js_format17.Errorf(
+      throw new import_js_format16.Errorf(
         "The first argument of RequestParser.parse should be an instance of IncomingMessage, but %v was given.",
         "The first argument of RequestParser.parse should be an instance of IncomingMessage, but %v was given.",
         request
         request
       );
       );
@@ -1280,7 +1279,7 @@ __name(_RequestParser, "RequestParser");
 var RequestParser = _RequestParser;
 var RequestParser = _RequestParser;
 
 
 // src/route-registry.js
 // src/route-registry.js
-var import_js_format18 = require("@e22m4u/js-format");
+var import_js_format17 = require("@e22m4u/js-format");
 var import_js_path_trie = require("@e22m4u/js-path-trie");
 var import_js_path_trie = require("@e22m4u/js-path-trie");
 var import_js_service2 = require("@e22m4u/js-service");
 var import_js_service2 = require("@e22m4u/js-service");
 var _RouteRegistry = class _RouteRegistry extends DebuggableService {
 var _RouteRegistry = class _RouteRegistry extends DebuggableService {
@@ -1302,7 +1301,7 @@ var _RouteRegistry = class _RouteRegistry extends DebuggableService {
   defineRoute(routeDef) {
   defineRoute(routeDef) {
     const debug = this.getDebuggerFor(this.defineRoute);
     const debug = this.getDebuggerFor(this.defineRoute);
     if (!routeDef || typeof routeDef !== "object" || Array.isArray(routeDef))
     if (!routeDef || typeof routeDef !== "object" || Array.isArray(routeDef))
-      throw new import_js_format18.Errorf(
+      throw new import_js_format17.Errorf(
         "The route definition should be an Object, but %v was given.",
         "The route definition should be an Object, but %v was given.",
         routeDef
         routeDef
       );
       );
@@ -1365,7 +1364,7 @@ __name(_RouteRegistry, "RouteRegistry");
 var RouteRegistry = _RouteRegistry;
 var RouteRegistry = _RouteRegistry;
 
 
 // src/request-context.js
 // src/request-context.js
-var import_js_format19 = require("@e22m4u/js-format");
+var import_js_format18 = require("@e22m4u/js-format");
 var import_js_service3 = require("@e22m4u/js-service");
 var import_js_service3 = require("@e22m4u/js-service");
 var _RequestContext = class _RequestContext {
 var _RequestContext = class _RequestContext {
   /**
   /**
@@ -1511,27 +1510,27 @@ var _RequestContext = class _RequestContext {
    */
    */
   constructor(container, request, response, route) {
   constructor(container, request, response, route) {
     if (!(0, import_js_service3.isServiceContainer)(container))
     if (!(0, import_js_service3.isServiceContainer)(container))
-      throw new import_js_format19.Errorf(
+      throw new import_js_format18.Errorf(
         'The parameter "container" of RequestContext.constructor should be an instance of ServiceContainer, but %v was given.',
         'The parameter "container" of RequestContext.constructor should be an instance of ServiceContainer, but %v was given.',
         container
         container
       );
       );
     this._container = container;
     this._container = container;
     if (!request || typeof request !== "object" || Array.isArray(request) || !isReadableStream(request)) {
     if (!request || typeof request !== "object" || Array.isArray(request) || !isReadableStream(request)) {
-      throw new import_js_format19.Errorf(
+      throw new import_js_format18.Errorf(
         'The parameter "request" of RequestContext.constructor should be an instance of IncomingMessage, but %v was given.',
         'The parameter "request" of RequestContext.constructor should be an instance of IncomingMessage, but %v was given.',
         request
         request
       );
       );
     }
     }
     this._request = request;
     this._request = request;
     if (!response || typeof response !== "object" || Array.isArray(response) || !isWritableStream(response)) {
     if (!response || typeof response !== "object" || Array.isArray(response) || !isWritableStream(response)) {
-      throw new import_js_format19.Errorf(
+      throw new import_js_format18.Errorf(
         'The parameter "response" of RequestContext.constructor should be an instance of ServerResponse, but %v was given.',
         'The parameter "response" of RequestContext.constructor should be an instance of ServerResponse, but %v was given.',
         response
         response
       );
       );
     }
     }
     this._response = response;
     this._response = response;
     if (!(route instanceof Route)) {
     if (!(route instanceof Route)) {
-      throw new import_js_format19.Errorf(
+      throw new import_js_format18.Errorf(
         'The parameter "route" of RequestContext.constructor should be an instance of Route, but %v was given.',
         'The parameter "route" of RequestContext.constructor should be an instance of Route, but %v was given.',
         route
         route
       );
       );
@@ -1547,7 +1546,7 @@ var import_js_service4 = require("@e22m4u/js-service");
 var import_http4 = require("http");
 var import_http4 = require("http");
 
 
 // src/senders/data-sender.js
 // src/senders/data-sender.js
-var import_js_format20 = require("@e22m4u/js-format");
+var import_js_format19 = require("@e22m4u/js-format");
 var _DataSender = class _DataSender extends DebuggableService {
 var _DataSender = class _DataSender extends DebuggableService {
   /**
   /**
    * Send.
    * Send.
@@ -1586,7 +1585,7 @@ var _DataSender = class _DataSender extends DebuggableService {
           debugMsg = "The Buffer was sent as binary data.";
           debugMsg = "The Buffer was sent as binary data.";
         } else {
         } else {
           response.setHeader("content-type", "application/json");
           response.setHeader("content-type", "application/json");
-          debugMsg = (0, import_js_format20.format)("The %v was sent as JSON.", typeof data);
+          debugMsg = (0, import_js_format19.format)("The %v was sent as JSON.", typeof data);
           data = JSON.stringify(data);
           data = JSON.stringify(data);
         }
         }
         break;
         break;

+ 6 - 2
eslint.config.js

@@ -2,6 +2,7 @@ import globals from 'globals';
 import eslintJs from '@eslint/js';
 import eslintJs from '@eslint/js';
 import eslintJsdocPlugin from 'eslint-plugin-jsdoc';
 import eslintJsdocPlugin from 'eslint-plugin-jsdoc';
 import eslintMochaPlugin from 'eslint-plugin-mocha';
 import eslintMochaPlugin from 'eslint-plugin-mocha';
+import eslintImportPlugin from 'eslint-plugin-import';
 import eslintPrettierConfig from 'eslint-config-prettier';
 import eslintPrettierConfig from 'eslint-config-prettier';
 import eslintChaiExpectPlugin from 'eslint-plugin-chai-expect';
 import eslintChaiExpectPlugin from 'eslint-plugin-chai-expect';
 
 
@@ -16,15 +17,18 @@ export default [{
   plugins: {
   plugins: {
     'jsdoc': eslintJsdocPlugin,
     'jsdoc': eslintJsdocPlugin,
     'mocha': eslintMochaPlugin,
     'mocha': eslintMochaPlugin,
+    'import': eslintImportPlugin,
     'chai-expect': eslintChaiExpectPlugin,
     'chai-expect': eslintChaiExpectPlugin,
   },
   },
   rules: {
   rules: {
     ...eslintJs.configs.recommended.rules,
     ...eslintJs.configs.recommended.rules,
     ...eslintPrettierConfig.rules,
     ...eslintPrettierConfig.rules,
-    ...eslintJsdocPlugin.configs['flat/recommended-error'].rules,
+    ...eslintImportPlugin.flatConfigs.recommended.rules,
     ...eslintMochaPlugin.configs.recommended.rules,
     ...eslintMochaPlugin.configs.recommended.rules,
     ...eslintChaiExpectPlugin.configs['recommended-flat'].rules,
     ...eslintChaiExpectPlugin.configs['recommended-flat'].rules,
-    'no-unused-vars': ['error', {'caughtErrors': 'none'}],
+    ...eslintJsdocPlugin.configs['flat/recommended-error'].rules,
+    'no-duplicate-imports': 'error',
+    'import/export': 0,
     'jsdoc/reject-any-type': 0,
     'jsdoc/reject-any-type': 0,
     'jsdoc/reject-function-type': 0,
     'jsdoc/reject-function-type': 0,
     'jsdoc/require-param-description': 0,
     'jsdoc/require-param-description': 0,

+ 0 - 0
mocha-setup.js → mocha.setup.js


+ 10 - 7
package.json

@@ -11,10 +11,10 @@
     "server",
     "server",
     "nodejs"
     "nodejs"
   ],
   ],
-  "homepage": "https://github.com/e22m4u/js-trie-router",
+  "homepage": "https://gitrepos.ru/e22m4u/js-trie-router",
   "repository": {
   "repository": {
     "type": "git",
     "type": "git",
-    "url": "git+https://github.com/e22m4u/js-trie-router.git"
+    "url": "git+https://gitrepos.ru/e22m4u/js-trie-router.git"
   },
   },
   "type": "module",
   "type": "module",
   "types": "./src/index.d.ts",
   "types": "./src/index.d.ts",
@@ -38,10 +38,10 @@
     "prepare": "husky"
     "prepare": "husky"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@e22m4u/js-debug": "~0.3.3",
-    "@e22m4u/js-format": "~0.2.1",
-    "@e22m4u/js-path-trie": "~0.0.13",
-    "@e22m4u/js-service": "~0.4.6",
+    "@e22m4u/js-debug": "~0.4.1",
+    "@e22m4u/js-format": "~0.3.1",
+    "@e22m4u/js-path-trie": "~0.1.1",
+    "@e22m4u/js-service": "~0.5.1",
     "debug": "~4.4.3",
     "debug": "~4.4.3",
     "http-errors": "~2.0.1",
     "http-errors": "~2.0.1",
     "statuses": "~2.0.2"
     "statuses": "~2.0.2"
@@ -50,7 +50,9 @@
     "@commitlint/cli": "~20.1.0",
     "@commitlint/cli": "~20.1.0",
     "@commitlint/config-conventional": "~20.0.0",
     "@commitlint/config-conventional": "~20.0.0",
     "@eslint/js": "~9.39.1",
     "@eslint/js": "~9.39.1",
+    "@types/chai": "~5.2.3",
     "@types/chai-as-promised": "~8.0.2",
     "@types/chai-as-promised": "~8.0.2",
+    "@types/mocha": "~10.0.10",
     "c8": "~10.1.3",
     "c8": "~10.1.3",
     "chai": "~6.2.1",
     "chai": "~6.2.1",
     "chai-as-promised": "~8.0.2",
     "chai-as-promised": "~8.0.2",
@@ -58,12 +60,13 @@
     "eslint": "~9.39.1",
     "eslint": "~9.39.1",
     "eslint-config-prettier": "~10.1.8",
     "eslint-config-prettier": "~10.1.8",
     "eslint-plugin-chai-expect": "~3.1.0",
     "eslint-plugin-chai-expect": "~3.1.0",
+    "eslint-plugin-import": "~2.32.0",
     "eslint-plugin-jsdoc": "~61.4.1",
     "eslint-plugin-jsdoc": "~61.4.1",
     "eslint-plugin-mocha": "~11.2.0",
     "eslint-plugin-mocha": "~11.2.0",
     "globals": "~16.5.0",
     "globals": "~16.5.0",
     "husky": "~9.1.7",
     "husky": "~9.1.7",
     "mocha": "~11.7.5",
     "mocha": "~11.7.5",
-    "prettier": "~3.6.2",
+    "prettier": "~3.7.4",
     "rimraf": "~6.1.2",
     "rimraf": "~6.1.2",
     "typescript": "~5.9.3"
     "typescript": "~5.9.3"
   }
   }

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

@@ -1,11 +1,9 @@
 import {expect} from 'chai';
 import {expect} from 'chai';
-import {Route} from '../route.js';
-import {HttpMethod} from '../route.js';
 import {format} from '@e22m4u/js-format';
 import {format} from '@e22m4u/js-format';
 import {HookInvoker} from './hook-invoker.js';
 import {HookInvoker} from './hook-invoker.js';
-import {HookRegistry} from './hook-registry.js';
-import {RouterHookType} from './hook-registry.js';
+import {Route, HttpMethod} from '../route.js';
 import {createResponseMock} from '../utils/index.js';
 import {createResponseMock} from '../utils/index.js';
+import {HookRegistry, RouterHookType} from './hook-registry.js';
 
 
 describe('HookInvoker', function () {
 describe('HookInvoker', function () {
   describe('invokeAndContinueUntilValueReceived', function () {
   describe('invokeAndContinueUntilValueReceived', function () {

+ 1 - 2
src/hooks/hook-registry.spec.js

@@ -1,7 +1,6 @@
 import {expect} from 'chai';
 import {expect} from 'chai';
 import {format} from '@e22m4u/js-format';
 import {format} from '@e22m4u/js-format';
-import {HookRegistry} from './hook-registry.js';
-import {RouterHookType} from './hook-registry.js';
+import {HookRegistry, RouterHookType} from './hook-registry.js';
 
 
 describe('HookRegistry', function () {
 describe('HookRegistry', function () {
   describe('addHook', function () {
   describe('addHook', function () {

+ 6 - 3
src/parsers/body-parser.js

@@ -1,11 +1,14 @@
 import HttpErrors from 'http-errors';
 import HttpErrors from 'http-errors';
 import {Errorf} from '@e22m4u/js-format';
 import {Errorf} from '@e22m4u/js-format';
-import {createError} from '../utils/index.js';
 import {RouterOptions} from '../router-options.js';
 import {RouterOptions} from '../router-options.js';
-import {parseContentType} from '../utils/index.js';
-import {fetchRequestBody} from '../utils/index.js';
 import {DebuggableService} from '../debuggable-service.js';
 import {DebuggableService} from '../debuggable-service.js';
 
 
+import {
+  createError,
+  parseContentType,
+  fetchRequestBody,
+} from '../utils/index.js';
+
 /**
 /**
  * Method names to be parsed.
  * Method names to be parsed.
  *
  *

+ 6 - 3
src/parsers/body-parser.spec.js

@@ -2,11 +2,14 @@ import {expect} from 'chai';
 import HttpErrors from 'http-errors';
 import HttpErrors from 'http-errors';
 import {HttpMethod} from '../route.js';
 import {HttpMethod} from '../route.js';
 import {format} from '@e22m4u/js-format';
 import {format} from '@e22m4u/js-format';
-import {BodyParser} from './body-parser.js';
-import {METHODS_WITH_BODY} from './body-parser.js';
 import {RouterOptions} from '../router-options.js';
 import {RouterOptions} from '../router-options.js';
 import {createRequestMock} from '../utils/index.js';
 import {createRequestMock} from '../utils/index.js';
-import {UNPARSABLE_MEDIA_TYPES} from './body-parser.js';
+
+import {
+  BodyParser,
+  METHODS_WITH_BODY,
+  UNPARSABLE_MEDIA_TYPES,
+} from './body-parser.js';
 
 
 describe('BodyParser', function () {
 describe('BodyParser', function () {
   describe('defineParser', function () {
   describe('defineParser', function () {

+ 1 - 2
src/parsers/cookies-parser.js

@@ -1,6 +1,5 @@
-import {parseCookies} from '../utils/index.js';
-import {getRequestPathname} from '../utils/index.js';
 import {DebuggableService} from '../debuggable-service.js';
 import {DebuggableService} from '../debuggable-service.js';
+import {parseCookies, getRequestPathname} from '../utils/index.js';
 
 
 /**
 /**
  * Cookies parser.
  * Cookies parser.

+ 1 - 2
src/route-registry.spec.js

@@ -1,7 +1,6 @@
-import {Route} from './route.js';
 import {expect} from 'chai';
 import {expect} from 'chai';
-import {HttpMethod} from './route.js';
 import {format} from '@e22m4u/js-format';
 import {format} from '@e22m4u/js-format';
+import {Route, HttpMethod} from './route.js';
 import {RouteRegistry} from './route-registry.js';
 import {RouteRegistry} from './route-registry.js';
 import {ServiceContainer} from '@e22m4u/js-service';
 import {ServiceContainer} from '@e22m4u/js-service';
 
 

+ 2 - 4
src/route.spec.js

@@ -1,12 +1,10 @@
-import {Route} from './route.js';
 import {expect} from 'chai';
 import {expect} from 'chai';
-import {HttpMethod} from './route.js';
 import {format} from '@e22m4u/js-format';
 import {format} from '@e22m4u/js-format';
+import {Route, HttpMethod} from './route.js';
 import {RouterHookType} 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';
 import {RequestContext} from './request-context.js';
 import {ServiceContainer} from '@e22m4u/js-service';
 import {ServiceContainer} from '@e22m4u/js-service';
+import {createRequestMock, createResponseMock} from './utils/index.js';
 
 
 describe('Route', function () {
 describe('Route', function () {
   describe('constructor', function () {
   describe('constructor', function () {

+ 3 - 5
src/senders/error-sender.spec.js

@@ -1,10 +1,8 @@
-import {Writable} from 'stream';
 import {expect} from 'chai';
 import {expect} from 'chai';
+import {Writable} from 'stream';
 import HttpErrors from 'http-errors';
 import HttpErrors from 'http-errors';
-import {ErrorSender} from './error-sender.js';
-import {createRequestMock} from '../utils/index.js';
-import {createResponseMock} from '../utils/index.js';
-import {EXPOSED_ERROR_PROPERTIES} from './error-sender.js';
+import {ErrorSender, EXPOSED_ERROR_PROPERTIES} from './error-sender.js';
+import {createRequestMock, createResponseMock} from '../utils/index.js';
 
 
 describe('ErrorSender', function () {
 describe('ErrorSender', function () {
   describe('send', function () {
   describe('send', function () {

+ 5 - 10
src/trie-router.spec.js

@@ -1,16 +1,11 @@
-import {Route} from './route.js';
 import {expect} from 'chai';
 import {expect} from 'chai';
-import {ServerResponse} from 'http';
-import {IncomingMessage} from 'http';
-import {HttpMethod} from './route.js';
 import {TrieRouter} from './trie-router.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 {Route, HttpMethod} from './route.js';
 import {RequestContext} from './request-context.js';
 import {RequestContext} from './request-context.js';
+import {ServerResponse, IncomingMessage} from 'http';
+import {DataSender, ErrorSender} from './senders/index.js';
+import {HookRegistry, RouterHookType} from './hooks/index.js';
+import {createRequestMock, createResponseMock} from './utils/index.js';
 
 
 describe('TrieRouter', function () {
 describe('TrieRouter', function () {
   describe('defineRoute', function () {
   describe('defineRoute', function () {

+ 1 - 2
src/utils/create-error.js

@@ -1,5 +1,4 @@
-import {format} from '@e22m4u/js-format';
-import {Errorf} from '@e22m4u/js-format';
+import {format, Errorf} from '@e22m4u/js-format';
 
 
 /**
 /**
  * Create error.
  * Create error.

+ 7 - 4
tsconfig.json

@@ -1,11 +1,14 @@
 {
 {
   "compilerOptions": {
   "compilerOptions": {
     "strict": true,
     "strict": true,
-    "rootDir": "src",
-    "noEmit": true,
     "target": "es2022",
     "target": "es2022",
     "module": "NodeNext",
     "module": "NodeNext",
     "moduleResolution": "NodeNext",
     "moduleResolution": "NodeNext",
-    "strictNullChecks": true
-  }
+    "noEmit": true,
+    "allowJs": true
+  },
+  "include": [
+    "./src/**/*.ts",
+    "./src/**/*.js"
+  ]
 }
 }