lodash-ny-util

Lodash mixin for generic list, map, string functionality.

Usage no npm install needed!

<script type="module">
  import lodashNyUtil from 'https://cdn.skypack.dev/lodash-ny-util';
</script>

README

lodash-ny-util

Lodash mixin for generic list, map, string functionality.

Build Status Code Climate

Install

npm install --save lodash-ny-util

Usage

_.mixin(require('lodash-ny-util'));

API

mapToHeaders

Maps the first row to become the property names of every following row, returning a list of maps.

_.mapToHeaders([['a', 'b'], ['c', 'd'], ['e', 'f']]);
//becomes [{a: 'c', b: 'd'}, {a: 'e', b: 'f'}]

promise

Shorthand for using lodash functions with A+ Promise's .then function

return Promise.resolve(thing).then(_.promise(_.indexBy)('name')))
return Promise.resolve(thing).then(_.promise('indexBy')('name')))
return Promise.resolve(thing).then(_.promise(_.indexBy, 'name')))
return Promise.resolve(thing).then(_.promise('indexBy', 'name')))

invertKeys

Takes an object that contains other objects, and flips the keys of the object and the inner object.

_.invertKeys({a: {b: 'c', d: 'e'}, f: {g: 'h', i: 'j'}})
//becomes {b: {a: 'c'}, d: {a: 'e'}, g: {f: 'h'}, i: {f: 'j'}}

listDeepObjects

Takes an object, and returns every object inside that object.

_.listDeepObjects({a:{b:{c:{d:'e'}}, f:{g:{h:'e'}}}})
// becomes:
//  [
//    { b: { c: { d: 'e' } }, f: { g: { h: 'e' } } },
//    { c: { d: 'e' } },
//    { g: { h: 'e' } },
//    { h: 'e' },
//    { d: 'e' },
//  ]

Optionally takes a filter:

_.listDeepObjects({a:{b:{c:{d:'e'}}, f:{d:{g:'e'}}}}, 'd');
//becomes [ { d: { g: 'e' } }, { d: 'e' } ]
_.listDeepObjects({a: {type:'yarn'}, b: {c: {type:'sweater'}}}, function (obj) { return !!obj.type; });
//becomes [ { type: 'yarn' }, { type: 'sweater' } ]