@keyv/serialize-superjson
v6.0.0-alpha.3
Published
SuperJSON serialization adapter for Keyv
Downloads
22
Maintainers
Readme
@keyv/serialize-superjson
SuperJSON-based serializer for Keyv with support for Date, Map, Set, BigInt, RegExp, and more
@keyv/serialize-superjson is a serialization adapter for Keyv powered by SuperJSON. It preserves JavaScript types that standard JSON does not support.
Supported Types
In addition to all standard JSON types, SuperJSON supports:
DateRegExpMapSetBigIntundefinedErrorURL
Installation
npm install @keyv/serialize-superjsonNote:
keyvis a peer dependency and must be installed alongside this package.
Usage
import Keyv from 'keyv';
import { superJsonSerializer } from '@keyv/serialize-superjson';
const keyv = new Keyv({ serialization: superJsonSerializer });
// Store a Date — it comes back as a Date, not a string
await keyv.set('date', new Date('2024-01-15'));
const date = await keyv.get('date');
console.log(date instanceof Date); // true
// Store a Map
await keyv.set('map', new Map([['a', 1], ['b', 2]]));
const map = await keyv.get('map');
console.log(map instanceof Map); // true
console.log(map.get('a')); // 1
// Store a Set
await keyv.set('set', new Set([1, 2, 3]));
const set = await keyv.get('set');
console.log(set instanceof Set); // trueAPI
KeyvSuperJsonSerializer
A class that implements the KeyvSerializationAdapter interface from keyv.
import { KeyvSuperJsonSerializer } from '@keyv/serialize-superjson';
const serializer = new KeyvSuperJsonSerializer();stringify(object: unknown): string
Serializes a value to a JSON string using SuperJSON, preserving type information.
parse<T>(data: string): T
Deserializes a SuperJSON string back to its original value with all types restored.
superJsonSerializer
A default KeyvSuperJsonSerializer instance, ready to use.
import { superJsonSerializer } from '@keyv/serialize-superjson';