Skip to content

A javascript utility function for extracting defined values from an object

Notifications You must be signed in to change notification settings

loopmode/defined

Repository files navigation

@loopmode/defined

A utility function for extracting defined values from an object.

Installation

Install the package in your project.

Using yarn:

yarn add @loopmode/defined

Using npm:

npm install @loopmode/defined --save

Usage

In the default configuration, you import the function and pass it an object. It returns all values that are not undefined or an empty object.

import getDefined from '@loopmode/defined';

const obj = {
    a: 'a',
    b: null,
    c: undefined,
    d: {},
    e: 0
};

const defined = getDefined(obj); // {a: 'a', b: null, e: 0}

The value null is not omitted per default, as it's common to send it to server backends in order to clear values.

Empty objects are omitted due to the original use case involving react, state and changes.

Options

drop

An array of values that will be omitted if they strictly match. Defaults to [undefined].

import getDefined from '@loopmode/defined';

const obj = {
    a: 'a',
    b: null,
    c: undefined
};

console.log(getDefined(obj)); // {a: 'a', b: null}
console.log(getDefined(obj, { drop: [undefined, null] })); // {a: 'a'}

keepObjects

A boolean flag for whether to keep values that are an empty object without keys. Defaults to false.

import getDefined from '@loopmode/defined';

const obj = {
    a: 'a',
    b: {}
};

console.log(getDefined(obj)); // {a: 'a'}
console.log(getDefined(obj, { keepObjects: true })); // {a: 'a', b: {}}

About

A javascript utility function for extracting defined values from an object

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages