UNPKG

@graffy/common

Version:

Common libraries that used by various Graffy modules.

66 lines (51 loc) 1.46 kB
"use strict"; 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); }