@lyra/form-builder
Version:
Lyra form builder
56 lines (46 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isEmpty;
var _hasOwn = require('./hasOwn');
var _hasOwn2 = _interopRequireDefault(_hasOwn);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function isEmptyObject(value /*: {[string]: any}*/) /*: boolean*/ {
for (const key in value) {
if (key === '_type' || key === '_key') {
continue;
}
if ((0, _hasOwn2.default)(value, key) && !isEmpty(value[key])) {
return false;
}
}
return true;
}
function isEmptyArray(value /*: Array<any>*/) /*: boolean*/ {
if (value === undefined) {
return true;
}
for (let i = 0; i < value.length; i++) {
if (isEmpty(value[i])) {
return true;
}
}
return false;
}
function isEmptyPrimitive(value /*: any*/) {
return value === undefined;
}
function isEmpty(value /*: any*/) /*: boolean*/ {
if (value === undefined) {
return true;
}
const type = typeof value;
if (type === 'object' && type !== null) {
return isEmptyObject(value);
}
if (Array.isArray(value)) {
return isEmptyArray(value);
}
return isEmptyPrimitive(value);
}