diff options
Diffstat (limited to 'pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/mapObjIndexedReturnArray.js')
-rw-r--r-- | pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/mapObjIndexedReturnArray.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/mapObjIndexedReturnArray.js b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/mapObjIndexedReturnArray.js new file mode 100644 index 00000000000..83c6634f7c8 --- /dev/null +++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/mapObjIndexedReturnArray.js @@ -0,0 +1,21 @@ +const _curry2 = require('ramda/src/internal/_curry2') +const _map = require('ramda/src/internal/_map') +const keys = require('ramda/src/keys') + +// mapObjIndexed: ((v, k, {k: v}) → v') → {k: v} → {k: v'} +// mapObjIndexedReturnArray: ((v, k, {k: v}) → v') → {k: v} → [v'] + +/* + * @example + * + * const xyz = { x: 1, y: 2, z: 3 }; + * const prependKeyAndDouble = (num, key, obj) => key + (num * 2); + * + * mapObjIndexedReturnArray(prependKeyAndDouble, xyz); //=> ['x2', 'y4', 'z6'] + */ + +const mapObjIndexedReturnArray = _curry2((fn, obj) => + _map(key => fn(obj[key], key, obj), keys(obj)), +) + +module.exports = mapObjIndexedReturnArray |