UNPKG

web-snaps

Version:

Browser automation with automatic snapshotting.

30 lines (29 loc) 891 B
import { arrayToObject } from '@augment-vir/common'; /** * Create a {@link PhaseNamesEnum} value from the given {@link WebFlow}. * * @category Internal */ export function createPhaseNamesEnum(webFlow) { const duplicatePhaseNames = webFlow.phases.reduce((accum, phase) => { if (phase.name in accum.allNames) { accum.duplicateNames.add(phase.name); } else { accum.allNames.add(phase.name); } return accum; }, { allNames: new Set(), duplicateNames: new Set(), }).duplicateNames; if (duplicatePhaseNames.size) { throw new Error(`Duplicate phase names given in WebFlow '${webFlow.flowKey}': ${Array.from(duplicatePhaseNames).join(',')}`); } return arrayToObject(webFlow.phases, ({ name }) => { return { key: name, value: name, }; }); }