Bindings for clean-deep, a library for removing empty or nullable values from javascript objects.
yarn add bs-clean-deep
Then add bs-clean-deep
as a dependency to bsconfig.json
:
"bs-dependencies": [
+ "bs-clean-deep"
]
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.
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.