UNPKG

@safejs/serializer

Version:

Serializer is a superset of JSON that includes recursive objects, dates, regular expressions, functions and others which you also can expand by yourself

50 lines (42 loc) 1.38 kB
import { UnifiedExtraSerializer } from "../types/extra-serializer"; import { dateSerializer, functionSerializer, mapSerializer, setSerializer, symbolSerializer, regExpSerializer, undefinedSerializer, nanSerializer, positiveInfinitySerializer, negativeInfinitySerializer, } from "../serializers"; import { BuiltIn } from "./built-in"; type PartialPreset = Partial<{ [N in BuiltIn]: UnifiedExtraSerializer }>; export const functionPreset: PartialPreset = { [BuiltIn.function]: functionSerializer, }; export const constantsPreset: PartialPreset = { [BuiltIn.undefined]: undefinedSerializer, [BuiltIn.nan]: nanSerializer, [BuiltIn.positiveInfinity]: positiveInfinitySerializer, [BuiltIn.negativeInfinity]: negativeInfinitySerializer, }; export const es5Preset: PartialPreset = { ...constantsPreset, [BuiltIn.date]: dateSerializer, [BuiltIn.regExp]: regExpSerializer, }; export const es2015Preset: PartialPreset = { ...es5Preset, [BuiltIn.map]: mapSerializer, [BuiltIn.set]: setSerializer, [BuiltIn.symbol]: symbolSerializer, }; export type Preset = "none" | "constants" | "es5" | "es2015"; export const presets: { [P in Preset]: PartialPreset } = { none: {}, constants: constantsPreset, es5: es5Preset, es2015: es2015Preset, };