UNPKG

@dillonkearns/elm-graphql

Version:

<img src="https://cdn.jsdelivr.net/gh/martimatix/logo-graphqelm/logo.svg" alt="dillonearns/elm-graphql logo" width="40%" align="right">

233 lines (142 loc) 4.83 kB
# @jumpn/utils-composite > Composite utilities (immutability, fp helpers) > > **NOTE**: All the functions described in [API](#API) are curried <!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> <!-- END doctoc --> - [Installation](#installation) - [Using npm](#using-npm) - [Using yarn](#using-yarn) - [Types](#types) - [API](#api) - [get](#get) - [getIn](#getin) - [getKeys](#getkeys) - [hasIn](#hasin) - [hasKey](#haskey) - [haveSameProps](#havesameprops) - [map](#map) - [remove](#remove) - [removeIn](#removein) - [set](#set) - [setIn](#setin) - [shallowCopy](#shallowcopy) - [shallowEqual](#shallowequal) - [updateIn](#updatein) - [License](#license) <!-- END doctoc generated TOC please keep comment here to allow auto update --> ## Installation ### Using [npm](https://docs.npmjs.com/cli/npm) $ npm install --save @jumpn/utils-composite ### Using [yarn](https://yarnpkg.com) $ yarn add @jumpn/utils-composite ## Types ```flowtype type Composite = Array<*> | Object; type Key = number | string; type Path = Array<Key>; ``` ## API <!-- Generated by documentation.js. Update this documentation by updating the source code. --> ### get Get property value of given key. **Parameters** - `key` **Key** - `composite` **Composite** Returns **any** ### getIn Returns value located at the given path or undefined otherwise. **Parameters** - `path` **Path** - `composite` **Composite** Returns **any** ### getKeys Get own enumerable keys. **Parameters** - `composite` **Composite** Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;Key>** ### hasIn Returns true if value located at given path is deeply equal to the one specified. **Parameters** - `path` **Path** - `value` **any** - `composite` **Composite** Returns **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** ### hasKey Returns true if key is included in composite's own enumerable ones, or false otherwise. **Parameters** - `key` **Key** - `composite` **Composite** Returns **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** ### haveSameProps Returns true if both composites have the same props or false otherwise. **Parameters** - `c1` **Composite** - `c2` **Composite** Returns **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** ### map Maps values of the given composite using mapper **Parameters** - `mapper` **function (value: any, key: Key, composite: $Supertype&lt;C>): any** - `composite` **C** Returns **$Supertype&lt;C>** ### remove Returns a new composite with the result of having removed the property with the given key. **Parameters** - `key` **Key** - `composite` **Composite** Returns **Composite** ### removeIn Returns a new composite with the result of having removed the property located at the given path. (This does the same as calling **updateIn** with updater: `() => updateIn.remove`) **Parameters** - `path` **Path** - `composite` **Composite** Returns **Composite** ### set Returns a new composite with the result of having updated the property with the given key with the specified value. **Parameters** - `key` **Key** - `value` **any** - `composite` **Composite** Returns **Composite** ### setIn Returns a new composite with the result of having updated the property located at the given path with the specified value. (This does the same as calling **updateIn** with updater: `() => value`) **Parameters** - `path` **Path** - `value` **any** - `composite` **Composite** Returns **Composite** ### shallowCopy Returns a new composite with the same own enumerable props of the one given. **Parameters** - `composite` **C** Returns **C** ### shallowEqual Returns true if both composites are of the same type (Array or Object) and their properties are strictly equal. **Parameters** - `c1` **Composite** - `c2` **Composite** Returns **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** ### updateIn Returns a new composite with the result of having updated the property value at the given path with the result of the call to updater function. Entry removal is supported by returning `updateIn.remove` symbol on updater function. **Parameters** - `path` **Path** - `updater` **function (prev: any): any** - `composite` **Composite** Returns **Composite** ## License [MIT](LICENSE.txt) :copyright: **Jumpn Limited** / Mauro Titimoli (mauro@jumpn.com)