inversify/inversify-express-utils

View on GitHub
src/base_middleware.ts

Summary

Maintainability
A
0 mins
Test Coverage
import type { NextFunction, Request, Response } from 'express';
import { injectable, interfaces as inversifyInterfaces } from 'inversify';
import type { HttpContext } from './interfaces';

@injectable()
export abstract class BaseMiddleware implements BaseMiddleware {
  // httpContext is initialized when the middleware is invoked
  // see resolveMidleware in server.ts for more details
  public httpContext!: HttpContext;

  protected bind<T>(
    serviceIdentifier: inversifyInterfaces.ServiceIdentifier<T>,
  ): inversifyInterfaces.BindingToSyntax<T> {
    return this.httpContext.container.bind(serviceIdentifier);
  }

  public abstract handler(
    req: Request,
    res: Response,
    next: NextFunction
  ): void;
}