encodeDesktopJsonPayload()
function encodeDesktopJsonPayload(value): unknown;
Defined in: packages/rxdb-adapter-tauri/src/desktop-json-codec.ts:156
把协议负载编码成纯 JSON 可序列化的形状。
Parameters
| Parameter | Type | Description |
|---|---|---|
value | unknown | 协议请求、应答或变更事件 |
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