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

24 lines (23 loc) 1.25 kB
interface DeterminedExtraSerializer { determine: (value: any) => boolean; } export interface ExtraSerializer<T = any, S = any> extends DeterminedExtraSerializer { serialize: (value: T) => S; deserialize: (serializedValue: S) => T; } export interface ConstantExtraSerializer<T = any> extends DeterminedExtraSerializer { deserialize: () => T; } export interface RecursiveExtraSerializer<T = any, S = any> extends ExtraSerializer<T, S> { initialize: (created: T, serializedValue: S) => void; } export declare type UnifiedExtraSerializer<T = any, S = any> = ConstantExtraSerializer<T> | ExtraSerializer<T, S> | RecursiveExtraSerializer<T, S>; export declare function isExtraSerializer(serializer: UnifiedExtraSerializer): serializer is ExtraSerializer; export declare function isConstantExtraSerializer(serializer: UnifiedExtraSerializer): serializer is ConstantExtraSerializer; export declare function isRecursiveExtraSerializer(serializer: UnifiedExtraSerializer): serializer is RecursiveExtraSerializer; export declare type ExtraSerializerRef = {}; export declare type ExtraSerializerId = string; export declare type ExtraSerializersPreset = { [Id in ExtraSerializerId]: UnifiedExtraSerializer; }; export {};