@alline/core
Version:
Core for Alline.
30 lines (29 loc) • 1.11 kB
TypeScript
import { AsyncSeriesHook, AsyncSeriesWaterfallHook } from "tapable";
export interface BaseSerializerHook<T, U> {
before: AsyncSeriesWaterfallHook<[T, U]>;
after: AsyncSeriesHook<[T, U]>;
}
export interface BaseSerializer<T, U> {
serializeHooks: BaseSerializerHook<T, U>;
serialize(data: T, ctx: U): Promise<void>;
}
export declare abstract class ModelSerializer<T, U> implements BaseSerializer<T, U> {
serializeHooks: BaseSerializerHook<T, U>;
constructor();
serialize(data: T, ctx: U): Promise<void>;
protected abstract onSerialize(data: T, ctx: U): Promise<void>;
}
export interface BaseDeserializerHook<T, U> {
before: AsyncSeriesHook<[U]>;
after: AsyncSeriesWaterfallHook<[T, U]>;
}
export interface BaseDeserializer<T, U> {
deserializeHooks: BaseDeserializerHook<T, U>;
deserialize(ctx: U): Promise<T>;
}
export declare abstract class ModelDeserializer<T, U> implements BaseDeserializer<T, U> {
deserializeHooks: BaseDeserializerHook<T, U>;
constructor();
deserialize(ctx: U): Promise<T>;
protected abstract onDeserialize(ctx: U): Promise<T>;
}