UNPKG

@alline/core

Version:

Core for Alline.

30 lines (29 loc) 1.11 kB
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>; }