@lableb/javascript-sdk
Version:
Lableb cloud search client for javascript
46 lines (35 loc) • 977 B
text/typescript
/**
* take an object of key values, it keeps only truthy values depending on
* the predicate function passed
*/
export function customPickBy(obj: any, func: (v: any) => boolean) {
if (!obj) return undefined;
let objectCopy = Object.assign({}, obj);
Object.keys(objectCopy).forEach(key => {
if (!func(objectCopy[key])) {
delete objectCopy[key]
}
});
return objectCopy;
}
export function customIdentity(value: any) {
/**
* allow 0 values to exist and convert them to string
*/
if (typeof value == 'number' && value == 0)
return '0';
// if (typeof value == 'string' && value == '')
// return true;
return value;
}
export function skipEmptyObject(item: any) {
switch (typeof item) {
case 'object': {
if (Object.keys(item).length)
return true;
else
return false;
}
default: return true;
}
}