findFirstReplayIncompatibility()
function findFirstReplayIncompatibility(
executor,
codec,
path
): Promise<
| RestoreIncompatibility
| undefined>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/restore-precheck.ts:259
沿一条已选定的路径找首个不兼容节点。
Parameters
| Parameter | Type | Description |
|---|---|---|
executor | TransactionExecutor | 当前事务执行器 |
codec | WorkingTreePatchCodecContext | 元数据解析上下文;这里只用到 resolveTargetMetadata |
path | readonly string[] | 重放路径,按重放顺序 |
Returns
Promise<
| RestoreIncompatibility
| undefined>
首个不兼容节点,全兼容则 undefined
Remarks
命中即返回,不继续读后面的节点——FR-050 那句「检查期间不得解码或写入后续 ChangeSet」
在这里的物理含义就是这个 return。
单独导出是给 restore-command.ts 用的:它已经为「目标可不可达」调过一次
selectRestoreReplayPath,再走一遍 checkRestoreCompatibility 会把整条父链
重新遍历一次,而那两次遍历之间没有任何东西能变(同一个事务)。