zenstack/packages/plugins/react/src/serialization-utils.ts
Yiming e2d62fc421
merge canary to dev (#181)
Co-authored-by: JS <jiashengguo@outlook.com>
2023-01-27 22:31:44 +08:00

21 lines
647 B
TypeScript

import Decimal from 'decimal.js';
import superjson from 'superjson';
export function registerSerializers() {
superjson.registerCustom<Buffer, string>(
{
isApplicable: (v): v is Buffer => Buffer.isBuffer(v),
serialize: (v) => JSON.stringify(v.toJSON().data),
deserialize: (v) => Buffer.from(JSON.parse(v)),
},
'Buffer'
);
superjson.registerCustom<Decimal, string>(
{
isApplicable: (v): v is Decimal => Decimal.isDecimal(v),
serialize: (v) => v.toJSON(),
deserialize: (v) => new Decimal(v),
},
'decimal.js'
);
}