跳到主要内容

encodeRxDBChangePatch()

function encodeRxDBChangePatch(
metadata,
patch,
resolveEntityMetadata?
): Record<string, unknown> | null;

Defined in: packages/rxdb/src/system/change-codec.ts:298

把实体的字段变更包(patch)按列类型重新编码,让它在落盘 / 跨网络时仍是合法 JSON。

Parameters​

ParameterTypeDescription
metadataEntityMetadata实体元数据,用来查每个 key 的实际类型
patchReadonly<Record<string, unknown>> | null | undefined字段级变更;null / undefined 直接透传为 null
resolveEntityMetadata?RxDBChangeEntityMetadataResolver当 key 是外键且元数据上没声明映射时,用它 反向查对端实体的 id 字段类型(比如多对多中间表只声明本侧外键)

Returns​

Record<string, unknown> | null

Remarks​

只对 bigint / binary 类型做编码,加密列(encrypted: true)一律跳过 —— 加密包内已经是一段 ArrayBuffer,再包一层 envelope 会让接收方把它当 编码值再解一次,结果还是一坨字节流。

返回值是 patch 的浅拷贝,原对象不会被改动,方便在事务上下文里继续使用入参。