function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function (obj) { return typeof obj; }; } else { _typeof = function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } // Generated by CoffeeScript 2.4.1 var _snake_case, _clone, _compare, is_object, is_object_literal, merge, _mutate, _snake_case2; merge = function merge() { return _mutate.apply(void 0, [{}].concat(Array.prototype.slice.call(arguments))); }; _clone = function clone(target) { if (Array.isArray(target)) { return target.map(function (element) { return _clone(element); }); } else if (target && _typeof(target) === 'object') { return _mutate({}, target); } else { return target; } }; _mutate = function mutate() { var i, j, name, ref, source, target, v; target = arguments[0]; for (i = j = 1, ref = arguments.length; 1 <= ref ? j < ref : j > ref; i = 1 <= ref ? ++j : --j) { source = arguments[i]; if (is_object_literal(source)) { if (!is_object_literal(target)) { target = {}; } for (name in source) { target[name] = _mutate(target[name], source[name]); } } else if (Array.isArray(source)) { target = function () { var k, len, results; results = []; for (k = 0, len = source.length; k < len; k++) { v = source[k]; results.push(_mutate(void 0, v)); } return results; }(); } else if (source !== void 0) { target = source; } } return target; }; _snake_case2 = function snake_case(source) { var convert = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var name, src, target, u; target = {}; if (is_object_literal(source)) { u = typeof convert === 'number' && convert > 0 ? convert - 1 : convert; for (name in source) { src = source[name]; if (convert) { name = _snake_case(name); } target[name] = _snake_case2(src, u); } } else { target = source; } return target; }; _compare = function compare(el1, el2) { var i, j, k, key, keys1, keys2, len, ref; if (is_object_literal(el1)) { if (!is_object_literal(el2)) { return false; } keys1 = Object.keys(el1).sort(); keys2 = Object.keys(el2).sort(); if (keys1.length !== keys2.length) { return false; } for (i = j = 0, len = keys1.length; j < len; i = ++j) { key = keys1[i]; if (key !== keys2[i]) { return false; } if (!_compare(el1[key], el2[key])) { return false; } } } else if (Array.isArray(el1)) { if (!Array.isArray(el2)) { return false; } if (el1.length !== el2.length) { return false; } for (i = k = 0, ref = el1.length; 0 <= ref ? k < ref : k > ref; i = 0 <= ref ? ++k : --k) { if (!_compare(el1[i], el2[i])) { return false; } } } else { if (el1 !== el2) { return false; } } return true; }; _snake_case = function _snake_case(str) { return str.replace(/([A-Z])/g, function (_, match, index) { return '_' + match.toLowerCase(); }); }; is_object = function is_object(obj) { return obj && _typeof(obj) === 'object' && !Array.isArray(obj); }; is_object_literal = function is_object_literal(obj) { var test; test = obj; if (_typeof(obj) !== 'object' || obj === null) { return false; } else { while (!false) { if (Object.getPrototypeOf(test = Object.getPrototypeOf(test)) === null) { break; } } return Object.getPrototypeOf(obj) === test; } }; export { _clone as clone, _compare as compare, is_object, is_object_literal, merge, _mutate as mutate, _snake_case2 as snake_case };