From 800f0414e8e78c0dcbef113b86e51834fd7e866b Mon Sep 17 00:00:00 2001 From: notaphplover Date: Thu, 30 Jan 2025 20:13:17 +0100 Subject: [PATCH] Fix middleware interface (#422) * chore: update ignored files * fix: update Middleware to include any service identifier * test: fix type error --- .gitignore | 60 ++++---------------------------------- CHANGELOG.md | 5 +--- src/interfaces.ts | 2 +- src/test/framework.test.ts | 3 +- tsconfig.cjs.tsbuildinfo | 1 - 5 files changed, 10 insertions(+), 61 deletions(-) delete mode 100644 tsconfig.cjs.tsbuildinfo diff --git a/.gitignore b/.gitignore index 77de26b1..341b376f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,26 +3,8 @@ logs *.log npm-debug.log* -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - # Coverage directory used by tools like istanbul coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release # Dependency directory node_modules @@ -30,42 +12,6 @@ node_modules # Optional npm cache directory .npm -# Optional REPL history -.node_repl_history - -build -bower_components -docs -bundled - -typings -.typingsrc -dts -dist -lib -es -es6 - -type_definitions/inversify/*.js - -#src/*.js -src/**/*.js - -#src/*.js.map -src/**/*.js.map - -src/*.d.ts -src/decorator/*.d.ts -src/factory/*.d.ts -src/syntax/*.d.ts - -#test/*.js -test/**/*.js -test/**/*.js.map - -type_definitions/**/*.js -type_definitions/*.js - # JetBrains IDE .idea .iml @@ -73,3 +19,9 @@ inversify-express-utils.iml # OS folders .DS_Store + +# Typescript build info +tsconfig.cjs.tsbuildinfo + +# Typescript compiled file +lib diff --git a/CHANGELOG.md b/CHANGELOG.md index 69687d89..63500c39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,15 +11,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Updated `BaseMiddleware.handler` to allow async handlers. +- Updated `Middleware` to allow include any `ServiceIdentifier`. ### Fixed ## [6.4.10] -### Added - -### Changed - ### Fixed - Fixed `Controller` without wrong constraints (#417). diff --git a/src/interfaces.ts b/src/interfaces.ts index 442a0524..4d76c192 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -25,7 +25,7 @@ export type DecoratorTarget = | ConstructorFunction | Prototype; -export type Middleware = string | symbol | RequestHandler; +export type Middleware = inversifyInterfaces.ServiceIdentifier | RequestHandler; export interface MiddlewareMetaData { [identifier: string]: Middleware[]; diff --git a/src/test/framework.test.ts b/src/test/framework.test.ts index 959c9387..b32b0ed6 100644 --- a/src/test/framework.test.ts +++ b/src/test/framework.test.ts @@ -4,6 +4,7 @@ import express, { Application, NextFunction, Request, + RequestHandler, Response, Router, } from 'express'; @@ -31,7 +32,7 @@ describe('Unit Test: InversifyExpressServer', () => { }); it('should call the configFn before the errorConfigFn', () => { - const middleware: Middleware = ( + const middleware: Middleware & RequestHandler = ( _req: Request, _res: Response, _next: NextFunction, diff --git a/tsconfig.cjs.tsbuildinfo b/tsconfig.cjs.tsbuildinfo deleted file mode 100644 index b5f4594e..00000000 --- a/tsconfig.cjs.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"root":["./src/base_http_controller.ts","./src/base_middleware.ts","./src/constants.ts","./src/debug.ts","./src/decorators.ts","./src/httpResponseMessage.ts","./src/index.ts","./src/interfaces.ts","./src/server.ts","./src/utils.ts","./src/content/httpContent.ts","./src/content/jsonContent.ts","./src/content/streamContent.ts","./src/content/stringContent.ts","./src/results/BadRequestErrorMessageResult.ts","./src/results/BadRequestResult.ts","./src/results/ConflictResult.ts","./src/results/CreatedNegotiatedContentResult.ts","./src/results/ExceptionResult.ts","./src/results/InternalServerError.ts","./src/results/JsonResult.ts","./src/results/NotFoundResult.ts","./src/results/OkNegotiatedContentResult.ts","./src/results/OkResult.ts","./src/results/RedirectResult.ts","./src/results/ResponseMessageResult.ts","./src/results/StatusCodeResult.ts","./src/results/StreamResult.ts","./src/results/index.ts","./src/test/action_result.test.ts","./src/test/auth_provider.test.ts","./src/test/base_http_controller.test.ts","./src/test/base_middleware.test.ts","./src/test/constants.test.ts","./src/test/debug.test.ts","./src/test/decorators.test.ts","./src/test/framework.test.ts","./src/test/http_context.test.ts","./src/test/issue_590.test.ts","./src/test/server.test.ts","./src/test/content/jsonContent.test.ts","./src/test/content/streamContent.test.ts","./src/test/features/controller_inheritance.test.ts","./src/test/features/decorator_middleware.test.ts","./src/test/helpers/jest.setup.ts"],"version":"5.6.3"} \ No newline at end of file