UNPKG

@berish/serber

Version:

Serializable and deserializable adaptive adapter with plugins

34 lines (33 loc) 2.68 kB
import { SERBER_INSTANCE_SYMBOL, SERBER_KEY_SYMBOL, SERBER_PARENT_OBJECT_SYMBOL, SERBER_PATH_SYMBOL, SERBER_ROOT_OBJECT_SYMBOL } from './const'; import { Serber } from './serber'; export interface ISerberPluginDefaultParams { [SERBER_INSTANCE_SYMBOL]?: Serber<any>; [SERBER_KEY_SYMBOL]?: string | symbol | number; [SERBER_PATH_SYMBOL]?: (string | symbol | number)[]; [SERBER_PARENT_OBJECT_SYMBOL]?: any; [SERBER_ROOT_OBJECT_SYMBOL]?: any; } export interface ISerberPlugin<Input = any, Output = any, Params extends { [key: string]: any; } = {}> { isForSerialize?(obj: Input, options?: Params & ISerberPluginDefaultParams): boolean; isForDeserialize?(obj: Output, options?: Params & ISerberPluginDefaultParams): boolean; isForSerializeAsync?(obj: Input, options?: Params & ISerberPluginDefaultParams): boolean | Promise<boolean>; isForDeserializeAsync?(obj: Output, options?: Params & ISerberPluginDefaultParams): boolean | Promise<boolean>; serialize?(obj: Input, options?: Params & ISerberPluginDefaultParams): Output; deserialize?(obj: Output, options?: Params & ISerberPluginDefaultParams): Input; serializeAsync?(obj: Input, options?: Params & ISerberPluginDefaultParams): Output | Promise<Output>; deserializeAsync?(obj: Output, options?: Params & ISerberPluginDefaultParams): Input | Promise<Input>; beforeSerialize?(obj: Input, options?: Params & ISerberPluginDefaultParams): void; beforeSerializeAsync?(obj: Input, options?: Params & ISerberPluginDefaultParams): void | Promise<void>; beforeDeserialize?(obj: Output, options?: Params & ISerberPluginDefaultParams): void; beforeDeserializeAsync?(obj: Input, options?: Params & ISerberPluginDefaultParams): void | Promise<void>; afterSerialize?(obj: Input, result: Output, options?: Params & ISerberPluginDefaultParams): void; afterSerializeAsync?(obj: Input, result: Output, options?: Params & ISerberPluginDefaultParams): void | Promise<void>; afterDeserialize?(obj: Output, result: Input, options?: Params & ISerberPluginDefaultParams): void; afterDeserializeAsync?(obj: Output, result: Input, options?: Params & ISerberPluginDefaultParams): void | Promise<void>; isAlreadySerialized?(obj: Output | Input, options?: Params & ISerberPluginDefaultParams): boolean; isAlreadyDeserialized?(obj: Input | Output, options?: Params & ISerberPluginDefaultParams): boolean; isAlreadySerializedAsync?(obj: Output | Input, options?: Params & ISerberPluginDefaultParams): boolean | Promise<boolean>; isAlreadyDeserializedAsync?(obj: Input | Output, options?: Params & ISerberPluginDefaultParams): boolean | Promise<boolean>; }