browse
Version:
Unified Browserbase CLI for browser automation and cloud APIs.
41 lines (40 loc) • 1.22 kB
JavaScript
import { z } from "zod";
import { formatSnapshotTree } from "./snapshot-format.js";
export const snapshotHandlers = {
async snapshot(manager, params) {
const { compact, filter, maxDepth } = z
.object({
compact: z.boolean().optional(),
filter: z.string().optional(),
maxDepth: z.number().int().nonnegative().optional(),
})
.parse(params);
const page = await manager.activePage();
const snapshot = await page.snapshot();
manager.setRefMaps({
urlMap: snapshot.urlMap ?? {},
xpathMap: snapshot.xpathMap ?? {},
});
const tree = formatSnapshotTree(snapshot.formattedTree, {
compact,
filter,
maxDepth,
});
if (compact) {
return { tree };
}
return {
tree,
urlMap: snapshot.urlMap,
xpathMap: snapshot.xpathMap,
};
},
async refs(manager) {
const refMaps = manager.getRefMaps();
return {
count: Object.keys(refMaps.xpathMap).length,
urlMap: refMaps.urlMap,
xpathMap: refMaps.xpathMap,
};
},
};