3.0.0 • Published 1 year ago

each-props v3.0.0

Weekly downloads
1,062,782
License
MIT
Repository
github
Last release
1 year ago

each-props

NPM version Downloads Build Status Coveralls Status

Processes each properties of an object deeply.

Install

To install from npm:

$ npm i each-props --save

Usage

Apply a function to all (non plain object) properties.

const eachProps = require('each-props');

var obj = { a: 1, b: { c: 'CCC', d: { e: 'EEE' } } };

eachProps(obj, function (value, keyChain, nodeInfo) {
  if (keyChain === 'a') {
    nodeInfo.parent['a'] = value * 2;
  } else if (keyChain === 'b.c') {
    nodeInfo.parent['c'] = value.toLowerCase();
  } else if (keyChain === 'b.d') {
    return true; // stop to dig
  } else if (keyChain === 'b.d.e') {
    nodeInfo.parent['e'] = value.toLowerCase();
  }
});

console.log(obj);
// => { a: 2, b: { c: 'ccc', d: { e: 'EEE' } } };

API

eachProps(obj, fn , opts) : void

Executes the fn function for all properties.

Parameters:

ParameterTypeDescription
objobjectA plain object to be treated.
fnfunctionA function to operate each properties.
optsobjectAn object to pass any data to each properties.
  • API of fn function

    fn(value, keyChain, nodeInfo) : boolean

    This function is applied to all properties in an object.

    Parameters:
    ParameterTypeDescription
    valueanyA property value.
    keyChainstringA string concatenating the hierarchical keys with dots.
    nodeInfoobjectAn object which contains node informations (See below).
    Returns:

    True, if stops digging child properties.

    Type: boolean

  • Properties of nodeInfo
    PropertiesTypeDescription
    namestringThe property name of this node.
    indexnumberThe index of the property among the sibling properties.
    countnumberThe count of the sibling properties.
    depthnumberThe depth of the property.
    parentobjectThe parent node of the property.
    sortfunctionA sort function which orders the child properties. This function is inherited from opts, if be specified.

    ... and any properties inherited from opts.

  • Properties of opts
    PropertiesTypeDescription
    sortfunctionA sort function which orders the same level properties. (Optional)

    ... and any properties you want to pass to each node.

License

MIT