@ exodus/ 序列化
将数据进行序列化和去序列化,例如用于传输电线. 支持数组, Date, (中文(简体) ), Buffer, (中文(简体) ), Uint8Array, (中文(简体) ), BigInt 以及随自定义类型扩展的能力.
安装
pnpm add @exodus/serialization
使用量
香草
import createSerializeDeserialize from '@exodus/serialization'
const { serialize, deserialize } = createSerializeDeserialize()
const original = { hello: Buffer.from('world') }
const fromOverTheWire = deserialize(serialize(original))
expect(fromOverTheWire).toEqual(original)
自定义类型
要添加自己的类型,请提供包含以下内容的类型定义:
type(单位:千美元) 独一无二 类型字符串标识符test: 返回函数true如果该值是类型实例serialize: 序列化类型值的函数deserialize: 使类型值去序列化的函数
例如,如果 BigInt 序列化不是内置的,你可以添加如下支持:
const { serialize, deserialize } = createSerializeDeserialize([
{
type: 'bigint',
test: (v) => typeof v === 'bigint',
serialize: (v) => v.toString(),
deserialize: (v) => BigInt(v),
},
])
const original = {
question: 'what is the biggest number in the universe?',
answer: BigInt(42),
}
const fromOverTheWire = deserialize(serialize(original))
expect(fromOverTheWire).toEqual(original)