type-plus
Version:
Provides additional types for TypeScript.
17 lines • 763 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mapProperties = void 0;
const reduceKey_js_1 = require("./reduceKey.js");
/**
* An Object-specific version of `map`.
* Original source:
* <https://stackoverflow.com/questions/53964071/how-to-dynamically-create-mapped-type-in-typescript>
*
* `ramda` has a similar function (`mapObjIndexed()`) with different parameter order.
* I keep this parameter order because this parameter order provides better type inference.
*/
function mapProperties(subject, callbackfn) {
return (0, reduceKey_js_1.reduceByKey)(subject, (p, key) => ((p[key] = callbackfn(subject[key], key, subject)), p), {});
}
exports.mapProperties = mapProperties;
//# sourceMappingURL=mapProperties.js.map