import { BaseRequestSystem } from './base_request_system'; import { Request } from './types'; class RequestSystemManager { private requestSystems: Array> = []; add(requestSystem: BaseRequestSystem<{}, {}>) { this.requestSystems.push(requestSystem); } get( request: Request ): BaseRequestSystem<{}, {}> | undefined { for (const requestSystem of this.requestSystems) { if (requestSystem.canHandle(request)) { return requestSystem; } } } } export const requestSystemManager = new RequestSystemManager();