Skip to content

PaulSavignano/filter-empty

Repository files navigation

filter-empty

Filter empty values from objects and/or arrays.

NPM Version NPM Downloads codecov.io release master BundleSize Dependencies DevDependencies PeerDependencies Patreon


Getting started

npm install -S filter-empty

Once installed, import and start filtering objects.

import filterEmpty from 'filter-empty';

const objToFilter = {
  level1: {
    level2: {
      level3: {
        key1: 'This value is ok',
        key2: null,
        key3: ['', null, 'This is also ok'],
      },
    },
  },
};

const filtered = filterEmpty(objToFilter);

// result
// {
//   level1: {
//     level2: {
//       level3: {
//         key1: 'This value is ok'
//         key3: ['This is also ok']
//       }
//     }
//   }
// }

Examples

[Codesandbox](https://codesandbox.io/s/filter-empty-mtlwh?fontsize=14)

Codesandbox Typescript

Motivation

Working with graphql and its great type safty results in null values for some props. Sometime in consuming these props on the client it's better to remove the empty props rather than implementing conditionals.

Features

  • Filters empty values from objects and arrays.
  • Creates new mutation free objects
  • Recurses nested props.
  • BundleSize BundleSize.

Benefits

  • New objects free of null, undefined, empty arrays, and empty strings.
  • Removal of empty nested props.
  • Light, fast, and dependency free lib.

Contributing

  1. Fork the repository.

  2. Clone the fork to your local machine and add upstream remote:

git clone https://github.com/<your username>/filter-empty.git
cd filter-empty
git remote add upstream https://github.com/PaulSavignano/filter-empty.git
  1. Synchronize your local next branch with the upstream one:
git checkout next
git pull upstream next
  1. Install the dependencies:
npm install
  1. Create a new branch:
git checkout -b my-branch
  1. Make changes, commit and push to your fork:
git push -u origin HEAD
  1. Go to the repository and make a Pull Request.