UNPKG

tamda

Version:

Practical functional programming library for TypeScript

32 lines (31 loc) 1.41 kB
/** * Transforms a `source` object based on specified functions for each property in an object `mapper`. * @note Specify type param `T` to get TypeScript inference on `mapper`, e.g. `transform<MyInterface>()`. * @param source Object to transform. * @param mapper Object with key/value pairs of property names and transforming functions. * @example * const source = { order: 5, foo: 'bar' }; * transform(source, { order: o => o + 1 }); * // { order: 6, foo: 'bar' } */ export declare function transform<T>(source: T, mapper: Mapper<T>): T; /** * Returns a function that * transforms a `source` object based on specified functions for each property in an object `mapper`. * @note Specify type param `T` to get TypeScript inference on `mapper`, e.g. `transform<MyInterface>()`. * @param mapper Object with key/value pairs of property names and transforming functions. * @example * const incrementOrder = transform({ order: o => o + 1 }); * incrementOrder({ order: 5, foo: 'bar' }) * // { order: 6, foo: 'bar' } */ export declare function transform<T>(mapper: Mapper<T>): typeof deferred; export declare type Mapper<T> = { [K in keyof T]?: (p: T[K]) => T[K]; }; /** * Transforms a `source` object based on specified functions for each property in an object `mapper`. * @param source Object to transform. */ declare function deferred<T>(source: T): T; export {};