SystemRegistry.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { ExpressJsonMiddleware, ExpressUrlencodedMiddleware, InternalServerErrorHandler, NotFoundErrorHandler, PoweredByHeaderMiddleware, SessionMiddleware, SwaggerUiServeMiddleware, SwaggerUiSetupMiddleware } from '../../middlewares';
  2. import Registry from './Registry';
  3. type SystemRegistryConfig = {
  4. json: boolean,
  5. urlencoded: boolean,
  6. sessions: boolean,
  7. swagger: boolean
  8. };
  9. class SystemRegistry extends Registry {
  10. private readonly json: boolean;
  11. private readonly urlencoded: boolean;
  12. private readonly sessions: boolean;
  13. private readonly swagger: boolean;
  14. public constructor(config: SystemRegistryConfig) {
  15. super();
  16. this.json = config.json;
  17. this.urlencoded = config.urlencoded;
  18. this.sessions = config.sessions;
  19. this.swagger = config.swagger;
  20. return this;
  21. }
  22. protected async registerRoutes(): Promise<Registry> {
  23. return this;
  24. }
  25. protected async registerMiddlewares(): Promise<Registry> {
  26. const json = this.json, urlencoded = this.urlencoded, swagger = this.swagger, sessions = this.sessions, server = this.getServer()!;
  27. json && this.registerHttpHandler(new ExpressJsonMiddleware(server));
  28. urlencoded && this.registerHttpHandler(new ExpressUrlencodedMiddleware(server));
  29. sessions && this.registerHttpHandler(new SessionMiddleware(server));
  30. swagger && this.registerHttpHandler(new SwaggerUiServeMiddleware(server));
  31. swagger && this.registerHttpHandler(new SwaggerUiSetupMiddleware(server));
  32. this.registerHttpHandler(new InternalServerErrorHandler(server));
  33. this.registerHttpHandler(new NotFoundErrorHandler(server));
  34. this.registerHttpHandler(new PoweredByHeaderMiddleware(server));
  35. return this;
  36. }
  37. }
  38. export default SystemRegistry;