Spaces:
Running
Running
| import type { | |
| BrowserConsoleMessage, | |
| BrowserNetworkRequest, | |
| BrowserPageError, | |
| } from "./pw-session.js"; | |
| import { ensurePageState, getPageForTargetId } from "./pw-session.js"; | |
| export async function getPageErrorsViaPlaywright(opts: { | |
| cdpUrl: string; | |
| targetId?: string; | |
| clear?: boolean; | |
| }): Promise<{ errors: BrowserPageError[] }> { | |
| const page = await getPageForTargetId(opts); | |
| const state = ensurePageState(page); | |
| const errors = [...state.errors]; | |
| if (opts.clear) { | |
| state.errors = []; | |
| } | |
| return { errors }; | |
| } | |
| export async function getNetworkRequestsViaPlaywright(opts: { | |
| cdpUrl: string; | |
| targetId?: string; | |
| filter?: string; | |
| clear?: boolean; | |
| }): Promise<{ requests: BrowserNetworkRequest[] }> { | |
| const page = await getPageForTargetId(opts); | |
| const state = ensurePageState(page); | |
| const raw = [...state.requests]; | |
| const filter = typeof opts.filter === "string" ? opts.filter.trim() : ""; | |
| const requests = filter ? raw.filter((r) => r.url.includes(filter)) : raw; | |
| if (opts.clear) { | |
| state.requests = []; | |
| state.requestIds = new WeakMap(); | |
| } | |
| return { requests }; | |
| } | |
| function consolePriority(level: string) { | |
| switch (level) { | |
| case "error": | |
| return 3; | |
| case "warning": | |
| return 2; | |
| case "info": | |
| case "log": | |
| return 1; | |
| case "debug": | |
| return 0; | |
| default: | |
| return 1; | |
| } | |
| } | |
| export async function getConsoleMessagesViaPlaywright(opts: { | |
| cdpUrl: string; | |
| targetId?: string; | |
| level?: string; | |
| }): Promise<BrowserConsoleMessage[]> { | |
| const page = await getPageForTargetId(opts); | |
| const state = ensurePageState(page); | |
| if (!opts.level) { | |
| return [...state.console]; | |
| } | |
| const min = consolePriority(opts.level); | |
| return state.console.filter((msg) => consolePriority(msg.type) >= min); | |
| } | |