Skip to content
/ cleanobj Public

Tiny (505B) removal of object properties that are undefined, functions, empty arrays or empty strings.

License

Notifications You must be signed in to change notification settings

tuplo/cleanobj

Repository files navigation


Logo

cleanobj

Tiny (505B) removal of object properties that are undefined, functions, empty arrays or empty strings.

Install

$ npm install @tuplo/cleanobj

# or with yarn
$ yarn add @tuplo/cleanobj

Usage

import clean from '@tuplo/cleanobj';

const obj = {
  p1: ' ',
  p2: ['', '', '', ['']],
  p3: ' four ',
  descriptions: ['SAMPLE SET', '', '', { foo: '', bar: null }],
  badNews: [null, '', '', 'SAMPLE'],
  p5: ['f ', ' ', ' do'],
  p6: { thing: 'one', zap: null, un: undefined },
  func: (foo) => foo,
  width: '',
  height: 0,
  finish: false,
  start: true,
  'alice.bob@charlie.com': 'Dean Edward',
};

const after = clean(obj);
// {
//   p3: 'four',
//   descriptions: [ 'SAMPLE SET', { bar: null } ],
//   badNews: [ null, 'SAMPLE' ],
//   p5: [ 'f', 'do' ],
//   p6: { thing: 'one', zap: null },
//   height: 0,
//   finish: false,
//   start: true,
//   'alice.bob@charlie.com': 'Dean Edward',
// }

Options

ignore

(key: string, value: unknown) => boolean

A function that if it returns true for a given property, cleanobj will not clean that property.

const obj = {
  p1: undefined,
  p2: [],
  p3: undefined,
};

function ignore(key: string, value: unknown) {
  return key === 'p1' || (value as unknown[]).length === 0;
}

const result = clean(obj, { ignore });
// {
//   p1: undefined,
//   p2: []
// }

License

MIT

About

Tiny (505B) removal of object properties that are undefined, functions, empty arrays or empty strings.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published