import { State, Row, PK, APUAssign } from '../types'; type TRow = APUAssign['Row']; export function Update(state: State, row: Row, pk?: PK): { Rows: TRow[] } { const Row = row as TRow; const PK = pk || { Key: Row.Key, Constraint: Row.Constraint, ID: Row.ID }; const keys = Object.keys(PK) as (keyof typeof PK)[]; return { Rows: state.Source['APU-Assign'].Rows .map((row): TRow => (keys.every((key): boolean => PK[key] === row[key])) ? Row : row) }; } export function Delete(state: State, row: Row, pk?: PK): { Rows: TRow[] } { const Row = row as TRow; const PK = pk || { Key: Row.Key, Constraint: Row.Constraint, ID: Row.ID }; const keys = Object.keys(PK) as (keyof typeof PK)[]; return { Rows: state.Source['APU-Assign'].Rows .filter((row): boolean => (keys.every((key): boolean => PK[key] === row[key])) ? false : true) }; }