UNPKG

universal-webpack

Version:
115 lines (93 loc) 2.53 kB
// // if the variable is defined export var exists = function exists(what) { return typeof what !== 'undefined'; }; // used for JSON object type checking var object_constructor = {}.constructor; // detects a JSON object export function is_object(object) { return exists(object) && object !== null && object.constructor === object_constructor; } // extends the first object with /* istanbul ignore next: some weird transpiled code, not testable */ export function extend() { for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) { objects[_key] = arguments[_key]; } objects = objects.filter(function (x) { return exists(x); }); if (objects.length === 0) { return; } if (objects.length === 1) { return objects[0]; } var to = objects[0]; var from = objects[1]; if (objects.length > 2) { var last = objects.pop(); var intermediary_result = extend.apply(this, objects); return extend(intermediary_result, last); } for (var _i = 0, _Object$keys = Object.keys(from); _i < _Object$keys.length; _i++) { var key = _Object$keys[_i]; if (is_object(from[key])) { if (!is_object(to[key])) { to[key] = {}; } extend(to[key], from[key]); } else if (Array.isArray(from[key])) { if (!Array.isArray(to[key])) { to[key] = []; } to[key] = to[key].concat(clone(from[key])); } else { to[key] = from[key]; } } return to; } export function merge() { var parameters = Array.prototype.slice.call(arguments, 0); parameters.unshift({}); return extend.apply(this, parameters); } export function clone(object) { if (is_object(object)) { return merge({}, object); } else if (Array.isArray(object)) { return object.map(function (x) { return clone(x); }); } else { return object; } } export function starts_with(string, substring) { var j = substring.length; if (j > string.length) { return false; } while (j > 0) { j--; if (string[j] !== substring[j]) { return false; } } return true; } export function ends_with(string, substring) { var i = string.length; var j = substring.length; if (j > i) { return false; } while (j > 0) { i--; j--; if (string[i] !== substring[j]) { return false; } } return true; // const index = string.lastIndexOf(substring) // return index >= 0 && index === string.length - substring.length } //# sourceMappingURL=helpers.js.map