跳到主要内容

replayWorkingTree()

function replayWorkingTree(head, entries): ColdReplaySnapshot;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/cold-replay.ts:198

用 HEAD 投影 + 全部工作树单元 重放出净状态

Parameters​

ParameterTypeDescription
headColdReplaySnapshotHEAD 的业务数据投影
entriesreadonly WorkingTreeEntry[]该分支上全部未提交单元,顺序无关

Returns​

ColdReplaySnapshot

重放出的净状态

Throws​

WorkingTreeReplayCorruptionError 单元违反折叠不变量

Remarks​

insert 的净状态只来自 patch,不掺 HEAD 的任何字段;update 把 patch 逐字段盖在 HEAD 行上, 未提及的字段原样保留;delete 让这一行消失,不是留一行空值。

不改入参:HEAD 快照与其中的 fields 对象都不会被就地修改。

Example​

const replayed = replayWorkingTree(await projectHead(branch), await readEntries(branch));
expect(diffColdReplay(replayed, await readBusinessTables())).toEqual([]);