UNPKG

type-plus

Version:
17 lines 763 B
"use strict"; 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