3.0.0 โ€ข Published 5 years ago

refine-deep v3.0.0

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

๐Ÿงผ refine-deep

code style: airbnb code style: prettier

Recursively remove falsey values from JavaScript objects.

๐Ÿ’๐Ÿผโ€โ™‚๏ธ Introduction

A simple utility that exposes a lodash-style interface for removing falsey values from JavaScript/TypeScript objects.

๐Ÿ”— Installation

Install via yarn (recommended):

yarn add refine-deep

Install via npm:

npm install refine-deep

๐Ÿ› ๏ธ Usage

Shallow functionality

import { refine } from 'refine-deep';

refine(['hello world', null, 0, undefined, '', [], {}]);
// => ['hello world']

refine({ helloWorld: '', foo: 'bar', baz: null});
// => { foo: 'bar' }

Recursive functionality

import { refineDeep } from 'refine-deep';

refineDeep([[null, [999]], { hello: 'world', foo: { bar: 1234, baz: null } }]);
// => [[[999]], { hello: 'world', foo: { bar: 1234 } }]

You can optionally specify a maximum recursion depth as the last argument to refineDeep:

refineDeep(myCollection, depth);
refineDeep(myCollection, options, depth);

If no depth is indicated, Infinity is assumed.

Configuration

You can configure refine and refineDeep with the same options:

All options are false by default

export interface RefineOptions {
  ignoreNil?: boolean; // Retain `null` and `undefined` values.
  ignoreNull?: boolean; // Retain `null` values.
  ignoreUndefined?: boolean; // Retain `undefined` values.
  ignoreEmptyAny?: boolean; // Retain empty arrays, objects, and strings.
  ignoreEmptyArrays?: boolean; // Retain empty arrays.
  ignoreEmptyObjects?: boolean; // Retain empty objects.
  ignoreEmptyStrings?: boolean; // Retain empty strings.
  ignoreZeros?: boolean; // Retain zeros.
}

refine(myCollection, { ignore*: true });
refineDeep(myCollection, { ignore*: true }, depth?: number);
3.0.0

5 years ago

2.0.0

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago