@iimm/shared
Version:
shared utils on browser and react env
39 lines (37 loc) • 2.02 kB
JavaScript
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
import loadashIsEqual from 'lodash-es/isEqual';
export var isEqual = loadashIsEqual;
/** */
export var isInArray = function isInArray(value, array, compareOptions) {
var parser = compareOptions === null || compareOptions === void 0 ? void 0 : compareOptions.parser;
var isEqual = (compareOptions === null || compareOptions === void 0 ? void 0 : compareOptions.isEqual) || loadashIsEqual;
if (!array || !Array.isArray(array)) return false;
return ['number', 'string'].includes(_typeof(value !== null && value !== void 0 ? value : 0)) ? array.includes(value) : array.some(function (item) {
return isEqual(parser ? parser(value) : value, parser ? parser(item) : item);
});
};
export var isObject = function isObject(value) {
return value !== null && _typeof(value) === 'object';
};
export var isFunction = function isFunction(value) {
return typeof value === 'function';
};
export var isString = function isString(value) {
return typeof value === 'string';
};
export var isNumber = function isNumber(value) {
return typeof value === 'number';
};
export var isUndefined = function isUndefined(value) {
return value === 'undefined';
};
export var isPlainObject = function isPlainObject(obj) {
return Object.prototype.toString.call(obj) === '[object Object]';
};
export var isBrowser = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
/** 字符串是否是Base64,可以有data前缀,也可以无 */
export var isBase64 = function isBase64(str) {
if (!str) return false;
var re = /^(data:([a-z0-9/+.-])+;base64,)?([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;
return re.test(str);
};