You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							184 lines
						
					
					
						
							4.2 KiB
						
					
					
				
			
		
		
	
	
							184 lines
						
					
					
						
							4.2 KiB
						
					
					
				"use strict";
 | 
						|
 | 
						|
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
 | 
						|
 | 
						|
var toString = Object.prototype.toString;
 | 
						|
var escapeHtmlRegex = /["&<>]/;
 | 
						|
var _ = {
 | 
						|
  each: function each(obj, cb) {
 | 
						|
    if (obj) {
 | 
						|
      if (Array.isArray(obj)) {
 | 
						|
        obj.forEach(cb);
 | 
						|
      } else {
 | 
						|
        Object.keys(obj).forEach(function (key) {
 | 
						|
          cb(obj[key], key);
 | 
						|
        });
 | 
						|
      }
 | 
						|
    }
 | 
						|
  },
 | 
						|
  some: function some(obj, cb) {
 | 
						|
    if (obj) {
 | 
						|
      if (Array.isArray(obj)) {
 | 
						|
        return obj.some(cb);
 | 
						|
      }
 | 
						|
 | 
						|
      return Object.keys(obj).some(function (key) {
 | 
						|
        return cb(obj[key], key);
 | 
						|
      });
 | 
						|
    }
 | 
						|
 | 
						|
    return false;
 | 
						|
  },
 | 
						|
  every: function every(obj, cb) {
 | 
						|
    if (obj) {
 | 
						|
      if (Array.isArray(obj)) {
 | 
						|
        return obj.every(cb);
 | 
						|
      }
 | 
						|
 | 
						|
      return Object.keys(obj).every(function (key) {
 | 
						|
        return cb(obj[key], key);
 | 
						|
      });
 | 
						|
    }
 | 
						|
 | 
						|
    return true;
 | 
						|
  },
 | 
						|
  map: function map(obj, cb) {
 | 
						|
    if (obj) {
 | 
						|
      if (Array.isArray(obj)) {
 | 
						|
        return obj.map(cb);
 | 
						|
      }
 | 
						|
 | 
						|
      return Object.keys(obj).map(function (key) {
 | 
						|
        return cb(obj[key], key);
 | 
						|
      });
 | 
						|
    }
 | 
						|
 | 
						|
    return [];
 | 
						|
  },
 | 
						|
  keyBy: function keyBy(a, p) {
 | 
						|
    return a.reduce(function (o, v) {
 | 
						|
      o[v[p]] = v;
 | 
						|
      return o;
 | 
						|
    }, {});
 | 
						|
  },
 | 
						|
  isEqual: function isEqual(a, b) {
 | 
						|
    var aType = _typeof(a);
 | 
						|
 | 
						|
    var bType = _typeof(b);
 | 
						|
 | 
						|
    var aArray = Array.isArray(a);
 | 
						|
    var bArray = Array.isArray(b);
 | 
						|
 | 
						|
    if (aType !== bType) {
 | 
						|
      return false;
 | 
						|
    }
 | 
						|
 | 
						|
    switch (_typeof(a)) {
 | 
						|
      case 'object':
 | 
						|
        if (aArray || bArray) {
 | 
						|
          if (aArray && bArray) {
 | 
						|
            return a.length === b.length && a.every(function (aValue, index) {
 | 
						|
              var bValue = b[index];
 | 
						|
              return _.isEqual(aValue, bValue);
 | 
						|
            });
 | 
						|
          }
 | 
						|
 | 
						|
          return false;
 | 
						|
        }
 | 
						|
 | 
						|
        return _.every(a, function (aValue, key) {
 | 
						|
          var bValue = b[key];
 | 
						|
          return _.isEqual(aValue, bValue);
 | 
						|
        });
 | 
						|
 | 
						|
      default:
 | 
						|
        return a === b;
 | 
						|
    }
 | 
						|
  },
 | 
						|
  escapeHtml: function escapeHtml(html) {
 | 
						|
    var regexResult = escapeHtmlRegex.exec(html);
 | 
						|
    if (!regexResult) return html;
 | 
						|
    var result = '';
 | 
						|
    var escape = '';
 | 
						|
    var lastIndex = 0;
 | 
						|
    var i = regexResult.index;
 | 
						|
 | 
						|
    for (; i < html.length; i++) {
 | 
						|
      switch (html.charAt(i)) {
 | 
						|
        case '"':
 | 
						|
          escape = '"';
 | 
						|
          break;
 | 
						|
 | 
						|
        case '&':
 | 
						|
          escape = '&';
 | 
						|
          break;
 | 
						|
 | 
						|
        case '\'':
 | 
						|
          escape = ''';
 | 
						|
          break;
 | 
						|
 | 
						|
        case '<':
 | 
						|
          escape = '<';
 | 
						|
          break;
 | 
						|
 | 
						|
        case '>':
 | 
						|
          escape = '>';
 | 
						|
          break;
 | 
						|
 | 
						|
        default:
 | 
						|
          continue;
 | 
						|
      }
 | 
						|
 | 
						|
      if (lastIndex !== i) result += html.substring(lastIndex, i);
 | 
						|
      lastIndex = i + 1;
 | 
						|
      result += escape;
 | 
						|
    }
 | 
						|
 | 
						|
    if (lastIndex !== i) return result + html.substring(lastIndex, i);
 | 
						|
    return result;
 | 
						|
  },
 | 
						|
  strcmp: function strcmp(a, b) {
 | 
						|
    if (a < b) return -1;
 | 
						|
    if (a > b) return 1;
 | 
						|
    return 0;
 | 
						|
  },
 | 
						|
  isUndefined: function isUndefined(val) {
 | 
						|
    return toString.call(val) === '[object Undefined]';
 | 
						|
  },
 | 
						|
  isObject: function isObject(val) {
 | 
						|
    return toString.call(val) === '[object Object]';
 | 
						|
  },
 | 
						|
  deepMerge: function deepMerge() {
 | 
						|
    var target = arguments[0] || {};
 | 
						|
    var length = arguments.length; // eslint-disable-next-line one-var
 | 
						|
 | 
						|
    var src, clone, copyIsArray;
 | 
						|
 | 
						|
    function assignValue(val, key) {
 | 
						|
      src = target[key];
 | 
						|
      copyIsArray = Array.isArray(val);
 | 
						|
 | 
						|
      if (_.isObject(val) || copyIsArray) {
 | 
						|
        if (copyIsArray) {
 | 
						|
          copyIsArray = false;
 | 
						|
          clone = src && Array.isArray(src) ? src : [];
 | 
						|
        } else {
 | 
						|
          clone = src && _.isObject(src) ? src : {};
 | 
						|
        }
 | 
						|
 | 
						|
        target[key] = _.deepMerge(clone, val);
 | 
						|
      } else if (!_.isUndefined(val)) {
 | 
						|
        target[key] = val;
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    for (var i = 0; i < length; i++) {
 | 
						|
      _.each(arguments[i], assignValue);
 | 
						|
    }
 | 
						|
 | 
						|
    return target;
 | 
						|
  }
 | 
						|
};
 | 
						|
module.exports = _;
 | 
						|
//# sourceMappingURL=under-dash.js.map
 |