import { Controller } from "./controller"; import { Handler } from "./handler"; import { Task } from "./task"; import { Response } from "./response"; import { TaskEnum } from "../enums/task.enum"; import { BrowserManager } from "../managers/browser.manager"; export class Application { private controllers = new Map>(); private browserManager = new BrowserManager(); openBrowser(headless = true) { return this.browserManager.openBrowser(headless); } public registerController(name: TaskEnum, controller: Controller) { this.controllers.set(name, controller); } importConfigutaion(configuration: any) { console.log(configuration); } public async executeTask(task: Task): Promise { console.log("Task", task); const controller = this.controllers.get(task.name); console.log("Controller ;", controller); const context = await this.browserManager.createNewContext(task.token); await this.browserManager.createNewPage(context); const response = await controller.execute(context, task); await this.browserManager.closeContext(context); return response; } }