* Register a controller using decorator-based routes
(controllerInstance: object)
| 95 | * Register a controller using decorator-based routes |
| 96 | */ |
| 97 | registerController(controllerInstance: object): void { |
| 98 | const controllerMethods = controllerInstance as Record<string, unknown>; |
| 99 | const routes = getRoutes(controllerInstance.constructor); |
| 100 | |
| 101 | for (const routeInfo of routes) { |
| 102 | const handler = controllerMethods[routeInfo.handler]; |
| 103 | if (typeof handler === "function") { |
| 104 | this.register( |
| 105 | routeInfo.method.toUpperCase() as HTTPMethod, |
| 106 | routeInfo.path, |
| 107 | handler.bind(controllerInstance) as RouteHandler |
| 108 | ); |
| 109 | } |
| 110 | } |
| 111 | } |
| 112 | |
| 113 | getRoutes(): Readonly<Route[]> { |
| 114 | return this.routes; |
no test coverage detected