assign-where
Like Object.assign
, but key/value assigning is determined by a predicate function
Installation
npm install assign-where --save
API
assignWhere( predicate, target, [sources]);
Arguments:
predicate
(function): Takes an array[key, value]
, and returns bool, This determins if each enumerable key/value should be assigned totarget
target
(enumerable): The value to be assigned onto (to be mutated)[sources]
(enumerables): The source values
NOTE: Like Object.assign, assignWhere will attempted to coerce target and sources to objects
Examples
On key
; const target = existing: 'here'; const output = ; console;// { existing: "here", apple: "Manzana" } console;// true
On value
; const target = existing: 'here'; const output = ; console;// { existing: "here", bannana: "Banano", crab: "crangrejo" } console;// true
Alternative
Use in-built functions
let target = existing: 'here'; Object ; console;// { existing: "here", bannana: "Banano", crab: "crangrejo" }
Why?
The initial use case was in React, wanting to examine a Component's props and find all the custom data attributes data-
.
const dataAttr = kconst MyComp = <div ... > <h1>propsheading</h1> <p>propscontent</p> </div> ReactDOM; document; // Works
Notes
- Based on
Object.assign
(target
is mutated), andArray.filter
sources
ofnull
andundefined
are ignored (likeObject.assign
)predicate
params based on output ofObject.entries
- Uses rollupjs & babeljs to build a commonjs module
bundle.js
fromsrc/main.js
NPM commands
Tests
npm test
Dev
npm run dev
Build
npm run build