custom-automapper
Version:
A powerful, type-safe object mapping library for TypeScript and NestJS
40 lines • 2.33 kB
TypeScript
import type { ClassType, MappingConfig, MappingEntryOptions, MappingResult, ConditionalMapping, TransformOptions, ValidationRule, MapperConstructorOptions, CacheConfig } from './types';
export declare class Mapper {
private registry;
private globalOptions;
private validationRules;
private reverseRegistry;
private compiledMapFns;
private compiledAsyncMapFns;
private instanceCache;
private cacheConfig;
constructor(options?: MapperConstructorOptions | (MappingEntryOptions & {
cache?: CacheConfig;
}));
setCacheEnabled(enabled: boolean): void;
isGlobalCacheEnabled(): boolean;
private isCacheEnabled;
mapFrom<S, K extends keyof S>(sourcePath: K): (src: S) => S[K];
createMap<S extends object, D extends object>(source: ClassType<S>, destination: ClassType<D>, config?: MappingConfig<S, D>, options?: MappingEntryOptions<S, D>): this;
createReverseMap<S extends object, D extends object>(source: ClassType<S>, destination: ClassType<D>): this;
private mergeOptions;
map<S extends object, D extends object>(sourceObj: S, destinationClass: ClassType<D>, _options?: TransformOptions): D;
mapAsync<S extends object, D extends object>(sourceObj: S, destinationClass: ClassType<D>, _options?: TransformOptions): Promise<D>;
mapWithMetadata<S extends object, D extends object>(sourceObj: S, destinationClass: ClassType<D>, options?: TransformOptions): MappingResult<D>;
mapArray<S extends object, D extends object>(sourceArray: S[], destinationClass: ClassType<D>, options?: TransformOptions): D[];
mapArrayAsync<S extends object, D extends object>(sourceArray: S[], destinationClass: ClassType<D>, options?: TransformOptions): Promise<D[]>;
mapConditional<S extends object, D extends object>(sourceObj: S, destinationClass: ClassType<D>, conditions: ConditionalMapping<S, D>[]): D;
addValidation<T>(targetClass: ClassType<T>, property: string, rule: ValidationRule): this;
validate<T extends object>(obj: T): Promise<boolean>;
clear(): void;
getMappings(): Array<{
source: string;
destination: string;
}>;
private findEntry;
private getRegistryKey;
private compileMapFunction;
private compileAsyncMapFunction;
private createMappingError;
}
//# sourceMappingURL=mapper.d.ts.map