@graffy/common
Version:
Common libraries that used by various Graffy modules.
49 lines (42 loc) • 1.08 kB
JavaScript
export function throwIf(message, condition) {
if (condition) throw Error('arg_encoding.' + message);
}
export function isEmpty(object) {
for (var _ in object) {
return false;
}
return true;
}
export 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;
}
export 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;
}
export function isArgObject(arg) {
return typeof arg === 'object' && arg && !Array.isArray(arg);
}