import type { ChangeRecord } from "~/shared/types/schedule"; export function applyChange(change: ChangeRecord, data: T[]) { const index = data.findIndex(item => item.id === change.data.id); if (change.op === "del") { if (index !== -1) data.splice(index, 1); } else if (change.op === "set") { if (index !== -1) data.splice(index, 1, change.data); else data.push(change.data) } } export function applyChangeArray(changes: ChangeRecord[], data: T[]) { // Note: quadratic complexity due to findIndex in applyChange for (const change of changes) { applyChange(change, data); } }