UNPKG

@berish/serber

Version:

Serializable and deserializable adaptive adapter with plugins

20 lines (19 loc) 1.25 kB
import { ISerberPlugin, ISerberPluginDefaultParams } from './types'; export interface SerberOperationOptions { throwWhenError?: boolean; } export declare class Serber<Params extends { [key: string]: any; } = {}> { private _plugins; get plugins(): ISerberPlugin<any, any, any>[]; addPlugin<TParams>(plugin: ISerberPlugin<any, any, TParams>): Serber<Params & TParams>; hasPlugin(plugin: ISerberPlugin): boolean; removePlugin<TParams>(plugin: ISerberPlugin<any, any, TParams>): Serber<Pick<Params, Exclude<keyof Params, keyof TParams>>>; with<TParams>(plugin: ISerberPlugin<any, any, TParams>): Serber<Params & TParams>; without<TParams>(plugin: ISerberPlugin<any, any, TParams>): Serber<Omit<Params, keyof TParams>>; serialize: <T = any>(obj: any, params?: Params & ISerberPluginDefaultParams, options?: SerberOperationOptions) => T; serializeAsync: (obj: any, params?: Params & ISerberPluginDefaultParams, options?: SerberOperationOptions) => Promise<any>; deserialize: <T = any>(obj: any, params?: Params & ISerberPluginDefaultParams, options?: SerberOperationOptions) => T; deserializeAsync: (obj: any, params?: Params & ISerberPluginDefaultParams, options?: SerberOperationOptions) => Promise<any>; }