跳到主要内容

decodeCommitChangeSetUnit()

function decodeCommitChangeSetUnit(context, row): CommitChangeUnitContent;

Defined in: packages/rxdb-plugin-working-tree/src/commit/commit-codec.ts:258

把一行 rxdb_commit_change_set 还原成变更单元内容。

Parameters​

ParameterTypeDescription
contextWorkingTreePatchCodecContext元数据解析上下文;本函数不判定 at-rest,因此不需要判定器
rowCommitChangeSetRow落库行的九列

Returns​

CommitChangeUnitContent

进摘要的那九列;patch / inversePatch 已过 codec 解码

Throws​

TypeError 列里存的不是普通对象

Remarks​

解码全部交给 decodeWorkingTreePatch,包括「目标实体未注册就原样返回」这一条—— 另一个 Tab / 另一个宿主可能只注册了部分实体,猜着解只会把值改坏。

加密列由底层 codec 跳过,因此保持落库形态:核心不解密。把密文解回明文是 US-307 恢复时在调用方的加密上下文里发生的事,放在这里等于让每一次读历史都把明文带进内存。

返回值不含 fingerprint / baseFingerprint:前者由 computeChangeUnitFingerprint 从内容算出,这里凭空造一个就等于多一份口径;后者压根没有落库(见 change-unit.ts)。