New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

deep-cleaner-es6

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

deep-cleaner-es6

Delete nested key-value pairs on an object with a provided key, or remove undefined, null, empty strings, empty arrays, and empty nested objects from an object.

latest
Source
npmnpm
Version
1.2.0
Version published
Maintainers
1
Created
Source

Deep Cleaner ES6

npm version Build Status npm DUB

Delete nested key-value pairs by a specified key or remove empty objects, empty strings, null, and undefined values from an object.

This module was created primarily with JSON in mind. The module is light-weight and dependency free.

Compiled for ES6 compatibility

Installation

npm install --save deep-cleaner

Usage:

To remove empty values on an object:

> var cleaner = require('deep-cleaner');
> var obj = {
...   a: 'value',
...   emptyString: '',
...   emptyArray: [],
...   emptyObject: {},
...   isNull: null,
...   isUndefined: undefined
...   b: {
...     a: 'nother value',
...     anotherEmptyString: '',
...     arr: [
...       {c: null},
...       {d: 'value'}
...     ]
...   }
... }
> cleaner(obj);
> console.log(obj);
{ aValue: 'value', b: { a: 'nother value', arr: [ {}, {d: 'value'} ] } }

To remove a key-value pair, pass in the name of the key as the second parameter:

> var dirtyObject = {
...   a: {
...     b: {
...       dirty: "value"
...     }
...   },
...   dirty: "value",
...   some_list: [
...     {
...       dirty: "value",
...       clean: "value"
...     },
...     {
...       dirty: "value",
...       clean: "value"
...     },
...     {
...       dirty: "value",
...       clean: "value"
...     },
...   ]
... }
> cleaner(dirtyObject, 'dirty');
> console.log(dirtyObject);
{ a: { b: {} }, some_list: [ {
  clean: "value" }, { clean: "value" }, { clean: "value" } ] }

You can also pass in an array of keys.

> var obj = {
...   a: {
...     a: 'foo',
...     b: 'bar',
...     c: 'baz'
...   },
...   b: 'quux',
...   c: 'plugh',
...   d: 'grault'
... }
> cleaner(obj, ['b','c']);
> console.log(obj);
{ a: { a: 'foo' }, d: 'grault' }

As of v1.2.0, deep-cleaner also works on objects with circular references!

> var foo = { bar: null, baz: '' };
> foo.bar = foo;
> cleaner(foo);
> console.log(foo);
{ bar: [Circular] }

API

deepCleaner(obj[, key])

Removes "empty" values from obj. A Value is considered "empty" if it is:

  • an empty string
  • an empty array
  • an empty object
  • null
  • undefined

Arguments

obj

Object - The object to be cleaned.

key

String?|Array? - A key or array of keys to be removed from obj. If key is not specified, then deepCleaner will default to removing empty values, otherwise, only obj[key] will be removed (or obj[key[0]],..., obj[key[n]] if key is an array of keys).

Contributing to Deep Cleaner

Pull requests are welcome! If you notice a bug or want to add a feature, please feel free to contribute to this project.

Here are a few guidelines you should follow.

  • Please make new pull requests into the development branch. A new contribution might prompt me to make additional changes that I'd like packaged together in a single PR to master.
  • Please write as much detail as necessary in your commit messages to clearly explain any changes.
  • Changes to the code that do not have passing unit tests will not be accepted.

Notice a bug but don't have time to fix it? Submit an issue! I strive to keep this package well maintained.

Testing

run npm test.

License

MIT

Keywords

clean

FAQs

Package last updated on 21 Aug 2019

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