web-snaps
Version:
Browser automation with automatic snapshotting.
36 lines (35 loc) • 953 B
TypeScript
import { type Overwrite } from '@augment-vir/common';
import { type UtcIsoString } from 'date-vir';
import { type HTMLTemplateResult } from 'element-vir';
import { type WebFlow } from '../web-flow/web-flow.js';
/**
* An individual {@link WebFlowPhase} snapshot.
*
* @category Internal
*/
export type PhaseSnap = {
phaseName: string;
url: string;
pageHtml: HTMLTemplateResult;
};
/**
* A set of saved snapshots generated from a {@link WebFlow}.
*
* @category Internal
*/
export type WebSnap = Readonly<{
webFlow: Pick<WebFlow, 'flowKey' | 'startUrl' | 'phaseNames'>;
generatedAt: UtcIsoString;
phaseSnaps: ReadonlyArray<Readonly<PhaseSnap>>;
}>;
/**
* A {@link WebSnap} that is still in the progress of being generated. This is used inside of
* `runWebFlow`.
*
* @category Internal
*/
export type InProgressWebSnap = Overwrite<WebSnap, {
phaseSnaps: Overwrite<PhaseSnap, {
pageHtml: string;
}>[];
}>;