跳到主要内容

encodeDesktopJsonPayload()

function encodeDesktopJsonPayload(value): unknown;

Defined in: packages/rxdb-adapter-tauri/src/desktop-json-codec.ts:156

把协议负载编码成纯 JSON 可序列化的形状。

Parameters​

ParameterTypeDescription
valueunknown协议请求、应答或变更事件

Returns​

unknown

只含 JSON 原生类型与标签对象的等价负载

Remarks​

undefined 的处理与 JSON.stringify 对齐:对象属性直接省略,数组空位归一成 null ——后者正是协议对绑定参数的既定语义(见 desktop-host-protocol.ts 的 normalizeBinding)。

非有限数(Infinity / -Infinity / NaN)则不跟着 JSON.stringify 走。它把这三个值 变成 null,于是一条绑了 Infinity 的 INSERT 会在 SQLite 里落成 NULL——写进去的不是 调用方给的值,而且从头到尾没有报错。Rust 侧的 encode_real 早就在应答方向拒了它们 (rust/src/value.rs),这里是同一条性质在请求方向的另一半。

Throws​

RxDBAdapterDesktopError 负载里含非有限数时抛 protocol_violation