Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

each-props

Package Overview
Dependencies
Maintainers
2
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

each-props

Processes each properties of an object deeply.

  • 3.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.3M
decreased by-6.07%
Maintainers
2
Weekly downloads
 
Created
Source

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

Keywords

FAQs

Package last updated on 08 Oct 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc