@edirect/template
Version:
Template Module
41 lines (40 loc) • 1.57 kB
TypeScript
export interface ITransformerParams {
context?: any;
value?: any;
}
export interface ITransformer {
[x: string]: ({ context, value }: ITransformerParams, ...params: any) => any;
}
export interface IDynamicArrayMapper {
arraySource: string;
arrayTemplate: Record<string, unknown>;
ignoreIndexs?: number[];
simpleArray?: boolean;
}
export interface ITransformerDefinition {
fields?: string[];
transformer: string;
transformerParams?: any[];
defaultValue?: any;
allowNull?: boolean;
}
export interface ITemplateOptions {
omitEmptyFields?: boolean;
}
export type TransformerElement = ITransformerDefinition | IDynamicArrayMapper;
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;
isTransformers(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;
}