diffMetadata()
function diffMetadata(remoteMetadata, localMetadata): DiffResult;
Defined in: packages/rxdb/src/repository/diff-metadata.ts:66
比较远程元数据与本地元数据,确定同步动作
两侧 updatedAt 都解析成时间点后比较,不按字符串字典序。
时间复杂度:O(n),n = max(remote.length, local.size)
Parameters
| Parameter | Type | Description |
|---|---|---|
remoteMetadata | QueryCacheEntityMetadata[] | 来自远程 adapter 的元数据(id + updatedAt,任何 Date.parse 认得的时间串) |
localMetadata | Map<string, string> | 来自本地 adapter 的 Map<id, updatedAt> |
Returns
包含分类 ID 的 DiffResult
Throws
TypeError 任一侧的 updatedAt 无法解析成时间点时抛出。
Example
const diff = diffMetadata(
[{ id: '1', updatedAt: '2024-01-02T00:00:00Z' }],
new Map([['1', '2024-01-01T00:00:00Z']])
);
// diff.staleIds = ['1'] - remote is newer
Remarks
从前这里按字典序比 ISO 字符串,见 isRemoteNewer 中记录的失效场景。