appium-remote-debugger
Version:
Appium proxy for Remote Debugger protocol
77 lines • 3.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.events = void 0;
exports.addClientEventListener = addClientEventListener;
exports.removeClientEventListener = removeClientEventListener;
exports.startConsole = startConsole;
exports.stopConsole = stopConsole;
exports.startNetwork = startNetwork;
exports.stopNetwork = stopNetwork;
const property_accessors_1 = require("./property-accessors");
// event emitted publically
exports.events = {
EVENT_PAGE_CHANGE: 'remote_debugger_page_change',
EVENT_FRAMES_DETACHED: 'remote_debugger_frames_detached',
EVENT_DISCONNECT: 'remote_debugger_disconnect',
};
/**
* Adds a client event listener to the RPC client and tracks it for later removal.
* The listener will be called when the specified event is emitted by the remote debugger.
*
* @param eventName - The name of the event to listen for.
* @param listener - The event listener function to call when the event is emitted.
*/
function addClientEventListener(eventName, listener) {
(0, property_accessors_1.getClientEventListeners)(this)[eventName] ??= [];
(0, property_accessors_1.getClientEventListeners)(this)[eventName].push(listener);
this.requireRpcClient().on(eventName, listener);
}
/**
* Removes all client event listeners for the specified event name from the RPC client.
* This will stop listening for the event and clean up the tracked listeners.
*
* @param eventName - The name of the event to stop listening for.
*/
function removeClientEventListener(eventName) {
for (const listener of (0, property_accessors_1.getClientEventListeners)(this)[eventName] || []) {
this.requireRpcClient().off(eventName, listener);
}
}
/**
* Starts listening for JavaScript console messages by registering listeners
* for Console.messageAdded and Console.messageRepeatCountUpdated events.
*
* @param listener - The event listener function to call when console messages are received.
*/
function startConsole(listener) {
this.log.debug('Starting to listen for JavaScript console');
this.addClientEventListener('Console.messageAdded', listener);
this.addClientEventListener('Console.messageRepeatCountUpdated', listener);
}
/**
* Stops listening for JavaScript console messages by removing listeners
* for Console.messageAdded and Console.messageRepeatCountUpdated events.
*/
function stopConsole() {
this.log.debug('Stopping to listen for JavaScript console');
this.removeClientEventListener('Console.messageAdded');
this.removeClientEventListener('Console.messageRepeatCountUpdated');
}
/**
* Starts listening for network events by registering a listener for NetworkEvent.
* This aggregates all Network.* events into a single NetworkEvent.
*
* @param listener - The event listener function to call when network events are received.
*/
function startNetwork(listener) {
this.log.debug('Starting to listen for network events');
this.addClientEventListener('NetworkEvent', listener);
}
/**
* Stops listening for network events by removing the listener for NetworkEvent.
*/
function stopNetwork() {
this.log.debug('Stopping to listen for network events');
this.removeClientEventListener('NetworkEvent');
}
//# sourceMappingURL=events.js.map