3.0.0 โข Published 7 years ago
refine-deep v3.0.0
๐งผ refine-deep
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-deepInstall 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
falseby 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);