0
62%
MIT
Remove empty or nullable values from javascript objects

bs-clean-deep

NPM version Build Status

Bindings for clean-deep, a library for removing empty or nullable values from javascript objects.

Getting started

yarn add bs-clean-deep

Then add bs-clean-deep as a dependency to bsconfig.json:

"bs-dependencies": [
+  "bs-clean-deep"
]

Example

  • RE
  • ML
open BsCleanDeep;

let jsObject = [%bs.raw {|
{
  bar: {},
  baz: null,
  biz: 'baz',
  foo: '',
  net: [],
  nit: undefined,
  qux: {
    baz: 'boz',
    txi: ''
  }
}
|}];

let cleaned = CleanDeep.cleanDeep(jsObject);

Js.log(cleaned);
/* => { biz: 'baz', qux: { baz: 'boz' } } */

let cleanedKeepStrings = jsObject |> CleanDeep.cleanDeep(~emptyStrings=false);

Js.log(cleanedKeepStrings);
/* => { biz: 'baz', foo: '', qux: { baz: 'boz', txi: '' } } */

let cleanedCustomValues = jsObject |> CleanDeep.cleanDeep(~cleanValues=[|"baz"|]);

Js.log(cleanedCustomValues);
/* => { qux: { baz: 'boz' } } */
open BsCleanDeep
let jsObject =
  [%bs.raw
    {|
{
  bar: {},
  baz: null,
  biz: 'baz',
  foo: '',
  net: [],
  nit: undefined,
  qux: {
    baz: 'boz',
    txi: ''
  }
}
|}]
let cleaned = CleanDeep.cleanDeep jsObject
let _ = Js.log cleaned
let cleanedKeepStrings =
  jsObject |> (CleanDeep.cleanDeep ~emptyStrings:false)
let _ = Js.log cleanedKeepStrings
let cleanedCustomValues =
  jsObject |> (CleanDeep.cleanDeep ~cleanValues:[|"baz"|])
let _ = Js.log cleanedCustomValues

See also example-project.

Contribute

If you find bugs or there are updates in clean-deep, feel free to open an issue or PR. If you are upgrading any dependencies, please use yarn so yarn.lock is updated.