From df4b4902cf42c64eec6e63ce1271994105a45f76 Mon Sep 17 00:00:00 2001 From: Rohit Date: Tue, 3 Jun 2025 18:36:25 +0530 Subject: [PATCH] feat: add can create browser wrapper --- server/src/browser-management/controller.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/server/src/browser-management/controller.ts b/server/src/browser-management/controller.ts index 3da388a0..b020f711 100644 --- a/server/src/browser-management/controller.ts +++ b/server/src/browser-management/controller.ts @@ -135,6 +135,19 @@ export const getActiveBrowserIdByState = (userId: string, state: "recording" | " return browserPool.getActiveBrowserId(userId, state); }; +/** + * Checks if there are available browser slots for a user. + * Wrapper around {@link browserPool.hasAvailableBrowserSlots()} function. + * If state is provided, also checks that none of their active browsers are in that state. + * @param userId the user ID to check browser slots for + * @param state optional state to check - if provided, ensures no browser is in this state + * @returns {boolean} true if user has available slots (and no browsers in specified state if state is provided) + * @category BrowserManagement-Controller + */ +export const canCreateBrowserInState = (userId: string, state?: "recording" | "run"): boolean => { + return browserPool.hasAvailableBrowserSlots(userId, state); +}; + /** * Returns the url string from a remote browser if exists in the browser pool. * @param id instance id of the remote browser