'use strict'; /** * @param {...Function} funcs The functions to compose. * @returns {Function} A function obtained by composing the argument functions * from right to left. For example, compose(f, g, h) is identical to doing * (...args) => f(g(h(...args))). */ export function compose(...args) { for (var _len = args.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { funcs[_key] = args[_key]; } if (funcs.length === 0) { return function (arg) { return arg; }; } if (funcs.length === 1) { return funcs[0]; } var last = funcs[funcs.length - 1]; var rest = funcs.slice(0, -1); return function () { return rest.reduceRight(function (composed, f) { return f(composed); }, last.apply(undefined, args)); }; } // == 生成uuid export function uuid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // == 浅复制 export function extend() { var args = Array.prototype.slice.apply(arguments); var finalObj = {}; args.map(function (obj) { for (var name in obj) { finalObj[name] = obj[name]; } }); return finalObj; } // == 防抖函数 export function debounce(func, wait) { var timer; return function (...args) { var context = this; clearTimeout(timer); timer = setTimeout(function () { func.apply(context, args); }, wait); } } function firstWordToUpper(str) { return str.substr(0,1).toLocaleUpperCase() + str.substr(1); }; function firstWordToLower(str) { return str.substr(0,1).toLocaleLowerCase() + str.substr(1); }; export const letter = { firstWordToUpper, firstWordToLower, // 路径转驼峰写法 pathToCamelCase: (path, firstLower?) => { firstLower = firstLower || false; var parts = path.split('/'); var output = ''; for (var i = 0, n = parts.length; i < n; i++) { var part = parts[i]; output = output + firstWordToUpper(part); } // 首字母是否小写(默认为大写) return firstLower ? firstWordToLower(output) : output; } } // == dom操作集 export const dom = { isIdSelector: (target) => { return target.indexOf('#') > -1; } } export const base64ImageSize = function (base64Image) { var str = base64Image.substring(22).replace('=',''); // 去除头部 var strLength = parseInt(str.length); var fileLength = strLength - (strLength/8) *2; return fileLength; } /** * 版本比较,1为大于,0为相等,-1为小于 * @param ver1 * @param ver2 */ export const compareVersion = function(ver1, ver2) { if(!ver1) return -1; if(ver1 === ver2) return 0; var ver1Arr = ver1.split('.'); var ver2Arr = ver2.split('.'); var ver1Count = ver1Arr.length; var ver2Count = ver2Arr.length; var len = Math.max(ver1Count, ver2Count); for (var i = 0, n = len; i < n; i++) { var num1 = ver1Arr[i] || 0; var num2 = ver2Arr[i] || 0; if(num1 === num2) continue; if(num1 > num2) return 1; if(num1 < num2) return -1; } return 0; }