UNPKG

browser-debugger-cli

Version:

DevTools telemetry in your terminal. For humans and agents. Direct WebSocket to Chrome's debugging port.

75 lines 2.71 kB
import { startConsoleCollection } from '../../telemetry/console.js'; import { startDialogHandling } from '../../telemetry/dialogs.js'; import { prepareDOMCollection } from '../../telemetry/dom.js'; import { startNavigationTracking } from '../../telemetry/navigation.js'; import { startNetworkCollection, startWebSocketCollection } from '../../telemetry/network.js'; import { filterDefined } from '../../utils/objects.js'; export function createDefaultTelemetryPlugins() { return [ { name: 'dialogs', runAlways: true, async start({ cdp }) { return startDialogHandling(cdp); }, }, { name: 'navigation', runAlways: true, async start({ cdp, store }) { const { cleanup, getCurrentNavigationId } = await startNavigationTracking(cdp, store.navigationEvents); store.setNavigationResolver(getCurrentNavigationId); return cleanup; }, }, { name: 'network', telemetry: 'network', async start({ cdp, config, store }) { const networkOptions = { includeAll: config.includeAll ?? false, getCurrentNavigationId: store.getCurrentNavigationId ?? undefined, ...filterDefined({ maxBodySize: config.maxBodySize, }), }; return startNetworkCollection(cdp, store.networkRequests, networkOptions); }, }, { name: 'websocket', telemetry: 'network', start({ cdp, store }) { return Promise.resolve(startWebSocketCollection(cdp, store.websocketConnections)); }, }, { name: 'console', telemetry: 'console', async start({ cdp, config, store }) { return startConsoleCollection(cdp, store.consoleMessages, config.includeAll ?? false, store.getCurrentNavigationId ?? undefined); }, }, { name: 'dom', telemetry: 'dom', async start({ cdp }) { return await prepareDOMCollection(cdp); }, }, ]; } export function shouldActivatePlugin(plugin, store) { if (plugin.runAlways) { return true; } if (plugin.telemetry) { return store.activeTelemetry.includes(plugin.telemetry); } return false; } const pluginRegistry = createDefaultTelemetryPlugins(); export function getRegisteredTelemetryPlugins() { return [...pluginRegistry]; } //# sourceMappingURL=plugins.js.map