@graffy/common
Version:
Common libraries that used by various Graffy modules.
66 lines (51 loc) • 1.46 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
exports.__esModule = true;
exports.throwIf = throwIf;
exports.isEmpty = isEmpty;
exports.mergeObject = mergeObject;
exports.cloneObject = cloneObject;
exports.isArgObject = isArgObject;
var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/is-array"));
function throwIf(message, condition) {
if (condition) throw Error('arg_encoding.' + message);
}
function isEmpty(object) {
for (var _ in object) {
return false;
}
return true;
}
function mergeObject(base, change) {
if (typeof change !== 'object' || typeof base !== 'object' || !base || !change) {
return change;
}
for (var prop in change) {
if (prop in base) {
var value = mergeObject(base[prop], change[prop]);
if (value === null) {
delete base[prop];
} else {
base[prop] = value;
}
} else {
base[prop] = change[prop];
}
}
return isEmpty(base) ? null : base;
}
function cloneObject(object) {
if (typeof object !== 'object' || !object) {
return object;
}
var clone = {};
for (var prop in object) {
var value = cloneObject(object[prop]);
if (value === null) continue;
clone[prop] = value;
}
return isEmpty(clone) ? null : clone;
}
function isArgObject(arg) {
return typeof arg === 'object' && arg && !(0, _isArray.default)(arg);
}
;