diff --git a/src/main/router.ts b/src/main/router.ts index 8e23c2d6c3..ebc711bf2a 100644 --- a/src/main/router.ts +++ b/src/main/router.ts @@ -44,6 +44,14 @@ export class Router { protected router = new Call.Router(); static rootPath = path.resolve(__static); + constructor(routes: Route[]) { + routes.forEach(route => { + this.router.add({ method: route.method, path: route.path }, (request: LensApiRequest) => { + route.handler(request); + }); + }); + } + public async route(cluster: Cluster, req: http.IncomingMessage, res: http.ServerResponse): Promise { const url = new URL(req.url, "http://localhost"); const path = url.pathname; @@ -81,12 +89,6 @@ export class Router { params, }; } - - addRoute = (route: Route) => { - this.router.add({ method: route.method, path: route.path }, (request: LensApiRequest) => { - route.handler(request); - }); - }; } export interface Route { diff --git a/src/main/router/router.injectable.ts b/src/main/router/router.injectable.ts index 9ec78191a5..c959180928 100644 --- a/src/main/router/router.injectable.ts +++ b/src/main/router/router.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable, getInjectionToken } from "@ogre-tools/injectable"; -import { Router, Route } from "../router"; +import { Route, Router } from "../router"; export const routeInjectionToken = getInjectionToken({ id: "route-injection-token", @@ -13,15 +13,9 @@ const routerInjectable = getInjectable({ id: "router", instantiate: (di) => { - const router = new Router(); - const routes = di.injectMany(routeInjectionToken); - routes.forEach(route => { - router.addRoute(route); - }); - - return router; + return new Router(routes); }, });