@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
TypeScript
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 {};