UNPKG

donobu

Version:

Create browser automations with an LLM agent and replay them as Playwright scripts.

31 lines 1.77 kB
/** * @fileoverview Shared state-file helper for Donobu reporters. * * Each Donobu reporter (HTML, Markdown, Slack) records its intended output * path into a single state file that the auto-heal orchestrator reads after * merging two runs, so it can re-render every configured format at the same * path the reporter originally chose. * * When multiple reporters run in the same Playwright process, each one calls * {@link mergeStateFileEntry} in its `onEnd` hook. The helper is * read-modify-write: it loads any previously-written state, merges this * reporter's `donobuOutputs` entry in without clobbering sibling entries, and * writes the result back. Synchronous fs I/O is sufficient — Playwright runs * reporter hooks sequentially within a single JS event loop. */ import { type DonobuReport, type DonobuReportOutputs } from './model'; /** * Merge a single reporter's `donobuOutputs` entry into the shared state file. * Safe to call from multiple reporters in the same run — each reporter's * entry is merged alongside any siblings already written. * * @param playwrightOutputDir - the Playwright JSON output dir (passed via * `PLAYWRIGHT_JSON_OUTPUT_DIR`). When unset, the call is a no-op because * we have nowhere canonical to land the state file. * @param report - the fresh `DonobuReport` this reporter built from live events. * Its `suites` overwrite any previous state (they're identical across * reporters running the same test run, so either is fine). * @param outputsEntry - the format-keyed entry this reporter is contributing. */ export declare function mergeStateFileEntry(playwrightOutputDir: string | undefined, report: DonobuReport, outputsEntry: DonobuReportOutputs): void; //# sourceMappingURL=stateFile.d.ts.map