Socket
Socket
Sign inDemoInstall

each-props

Package Overview
Dependencies
7
Maintainers
2
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    each-props

Processes each properties of an object deeply.


Version published
Weekly downloads
1.3M
decreased by-0.14%
Maintainers
2
Install size
54.4 kB
Created
Weekly downloads
 

Changelog

Source

3.0.0 (2022-10-02)

⚠ BREAKING CHANGES

  • Remove pre-built browser bundle & browser tests (#9)

Bug Fixes

  • ci: Add eslint-plugin-node for node 16 (2bae7e6)
  • ci: Correct prettierignore typo (73e1392)

Miscellaneous Chores

  • Remove pre-built browser bundle & browser tests (#9) (3f75efd)

Readme

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

Last updated on 08 Oct 2022

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc