import { optionalBoolean, type MutationFlags } from './types.ts' export function readMutationFlags(input: Record): MutationFlags { return { dryRun: optionalBoolean(input.dryRun, 'dryRun'), confirm: optionalBoolean(input.confirm, 'confirm'), } } export function assertMutationAllowed( flags: MutationFlags, label: string, ): { dryRun: boolean } { if (flags.dryRun) return { dryRun: true } if (flags.confirm) return { dryRun: false } throw new Error( `${label} is a mutation. Pass dryRun: true to preview, or confirm: true to run it live.`, ) } export function assertFilteredWrite( input: { hasFilters: boolean allowUnfiltered?: boolean dryRun?: boolean confirm?: boolean }, label: string, ) { if (input.hasFilters) return if (input.dryRun) return if (input.confirm && input.allowUnfiltered) return throw new Error( `${label} without filters would change every row. Add filters, or pass dryRun: true, or confirm: true with allowUnfiltered: true.`, ) }