UNPKG

shu-c-view

Version:

rollup 打包vue@2.7组件库框架

85 lines (73 loc) 1.77 kB
const kebabCase = function(str) { const hyphenateRE = /([^-])([A-Z])/g; return str .replace(hyphenateRE, '$1-$2') .replace(hyphenateRE, '$1-$2') .toLowerCase(); }; function isObject(obj) { return Object.prototype.toString.call(obj) === '[object Object]'; } const looseEqual = function(a, b) { const isObjectA = isObject(a); const isObjectB = isObject(b); if (isObjectA && isObjectB) { return JSON.stringify(a) === JSON.stringify(b); } if (!isObjectA && !isObjectB) { return String(a) === String(b); } return false; }; const arrayEquals = function(arrayA, arrayB) { arrayA = arrayA || []; arrayB = arrayB || []; if (arrayA.length !== arrayB.length) { return false; } for (let i = 0; i < arrayA.length; i += 1) { if (!looseEqual(arrayA[i], arrayB[i])) { return false; } } return true; }; const isEqual = function(value1, value2) { if (Array.isArray(value1) && Array.isArray(value2)) { return arrayEquals(value1, value2); } return looseEqual(value1, value2); }; const isEmpty = function(val) { // null or undefined if (val === null) { return true; } if (typeof val === 'boolean') { return false; } if (typeof val === 'number') { return !val; } if (val instanceof Error) { return val.message === ''; } switch (Object.prototype.toString.call(val)) { // String or Array case '[object String]': case '[object Array]': return !val.length; // Map or Set or File case '[object File]': case '[object Map]': case '[object Set]': { return !val.size; } // Plain Object case '[object Object]': { return !Object.keys(val).length; } } return false; }; export { kebabCase, isEqual, isEmpty };