mapz

Functional map with sugar

Usage no npm install needed!

<script type="module">
  import mapz from 'https://cdn.skypack.dev/mapz';
</script>

README

mapz

Build Coverage Downloads Size

Functional map with sugar.

Install

This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required.

npm:

npm install mapz

Use

import {mapz} from 'mapz'

var map = mapz(fn, {key: 'children', gapless: true})

map({children: [1, 2, 3]}) // => ['Hi, 2', 'Hi, 3']

function fn(value) {
  return value > 1 ? 'Hi, ' + value + '.' : null
}

API

This package exports the following identifiers: mapz. There is no default export.

mapz(fn[, options])

Functional map with sugar (functional, as values are provided as a parameter, instead of context object).

Wraps the supplied fn, which handles one value, so that it accepts multiple values, calling fn for each and returning all results.

If options is a string, it’s treated as {key: options}.

options.gapless

Whether to filter out null and undefined results (boolean, default: false).

options.key

If a key (string, optional) is given, and an object supplied to the wrapped fn, values at that object’s key field are mapped and the object, instead of the values, is given to fn as a last parameter. If a key is given and an array is passed to the wrapped fn, no value is given to fn as a last parameter.

Returns

Function — See map(values)

map(values)

Call the bound fn for all values. If a key is bound, values can be an object. See options.key for more info.

Returns

Array.<*> — Values returned by fn. If gapless is true, null or undefined results are not returned by map.

fn(value, parent?)

Handle one value. If key is set and an array is given, no parent is passed.

Returns

* — Any value.

Related

  • zwitch — Handle values based on a property

License

MIT © Titus Wormer