UNPKG

testplane

Version:

Tests framework based on mocha and wdio

53 lines (52 loc) 2.26 kB
import type { CDPEvent, CDPRequest } from "./types"; import type { Browser } from "../types"; type OnEventMessageFn = (cdpEventMessage: CDPEvent) => unknown; export declare class CDPConnection { onEventMessage: OnEventMessageFn | null; private readonly _cdpWsEndpoint; private readonly _headers?; private _onPong; private _pingInterval; private _pingSubsequentFails; private _onConnectionCloseFn; private _wsConnectionStatus; private _wsConnection; private _wsConnectionPromise; private _requestId; private _pendingRequests; private constructor(); /** @description Creates CDPConnection without establishing it */ static create(browser: Browser): Promise<CDPConnection>; /** @description Tries to establish ws connection with timeout */ private _tryToEstablishWsConnection; /** * @description creates ws connection with retries or returns existing one * @note Concurrent requests with same params produce same ws connection */ private _getWsConnection; /** @description Handles websocket incoming messages, resolving pending requests */ private _onMessage; /** * @description Produces connection-"uniq" request ids * @note Theoretically, it can collide, but given "CDP_MAX_REQUEST_ID" is INT32_MAX, it wont */ private _getRequestId; /** @description establishes ws connection, sends request with timeout and waits for response */ private _tryToSendRequest; /** @description Performs high-level CDP request with retries and timeouts */ request<T = void>(method: CDPRequest["method"], { params, sessionId }?: Omit<CDPRequest, "id" | "method">): Promise<T>; private _closeWsConnection; /** * @description Tries to re-establish connection after network drops * @note Silently gives up after failed "CDP_CONNECTION_RETRIES" attempts */ private _tryToReconnect; /** @description Used to abort all pending requests when connection is closed */ private _abortPendingRequests; /** @description Closes websocket connection, terminating all pending requests */ close(): void; private _pingHealthCheckStop; private _isWebSocketActive; private _pingHealthCheckStart; } export {};