UNPKG

@edirect/template

Version:

`@edirect/template` is a flexible library for transforming payloads based on declarative templates. It supports mapping fields, applying custom transformers, setting default values, handling nested objects, and working with arrays.

43 lines 1.73 kB
export interface ITransformerParams { context?: Record<string, unknown>; value?: unknown; } export interface ITransformer { [x: string]: ({ context, value }: ITransformerParams, ...params: unknown[]) => unknown; } export interface IDynamicArrayMapper { arraySource: string; arrayTemplate: Record<string, unknown>; arrayOmitIfEmpty?: boolean; ignoreIndexs?: number[]; simpleArray?: boolean; } export interface ITransformerDefinition { fields?: string[]; transformer: string; transformerParams?: unknown[]; defaultValue?: unknown; allowNull?: boolean; } export interface ITemplateOptions { omitEmptyFields?: boolean; omitEmptyCollections?: 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: unknown): boolean; transformPayload<T>(obj: object, template?: Record<string, unknown>): T; } //# sourceMappingURL=interfaces.d.ts.map