The type of the data that is serialized and deserialized by the current serializer.
The type of the data that is written to storage by the current serializer.
The type of the data that is written to storage by the next serializer.
The current serializer.
The next serializer.
The chained serializer.
const baseSerializer: IPersistSerializer<Data, string> = {
name: 'BaseSerializer',
serialize: (data: Data) => JSON.stringify(data),
deserialize: (buffer: string) => JSON.parse(buffer),
validator: (data: Data) => dataSchema.safeParse(data).success,
};
const strToBufferSerializer: IPersistSerializer<string, Buffer> = {
name: 'StrToBufferSerializer',
serialize: (data: string) => Buffer.from(data),
deserialize: (buffer: Buffer) => buffer.toString(),
validator: (data: string) => typeof data === 'string', // optional deserialization validation
};
const bufferSerializer: IPersistSerializer<Data, Buffer> = nextSerializer<Data, string, Buffer>(baseSerializer, strToBufferSerializer);
Chains two serializers together.