@edirect/template
Version:
Template Module
26 lines (25 loc) • 1.09 kB
TypeScript
export interface ITransformerParams {
context?: any;
value?: any;
}
export interface ITransformer {
[x: string]: ({ context, value }: ITransformerParams, ...params: any) => any;
}
export interface ITemplateOptions {
omitEmptyFields?: boolean;
}
export interface ITemplateModule {
setContext(context: Record<string, unknown>): void;
setTemplate(template: Record<string, unknown>): void;
setTransformers(transformers: ITransformer): void;
setOptions(settings: ITemplateOptions): void;
verifyTransformer(transformer: ITransformer, methodName: string): boolean;
runTransformer(transformer: string, value?: unknown): unknown | null;
setValueByCondition<U>(object: U, key: string, value: unknown): U;
isTransformer(object: Record<string, unknown>): boolean;
isStaticArrayMapper(object: Record<string, unknown>): boolean;
isDynamicArrayMapper(object: Record<string, unknown>): boolean;
isValidObject(object: object): boolean;
checkValue(value: any): boolean;
transformPayload<T>(obj: object, template?: Record<string, unknown>): T;
}