@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
TypeScript
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