eme-flow
Version:
eme flow组件
71 lines (69 loc) • 2.41 kB
JavaScript
/**
* Created by cc on 16/8/12.
*/
;
import code from '../resource/error-code';
import crypto from 'crypto';
export default {
P: function (fn, target) {
return (...args) => {
return new Promise((resolve, reject) => {
args.push((err, ...data) => {
if (err === null || err === undefined) return resolve.apply(this, data);
return reject(err);
});
fn.apply(target, args);
});
};
},
mix: function (a, b) {
Object.keys(b).forEach(key => a[key] = b[key])
},
error: function (ecode) {
return {
isFlow : true,
state: ecode,
status: ecode,
error: code[ecode].statusMessage,
message: code[ecode].statusMessage,
statusMessage: code[ecode].statusMessage
}
},
guid: function (time) {
var result = "";
time || (time = 1);
for (var i = 0; i < time; i++) {
result += (function () {
var c = new Date(),
b = c.getSeconds() + "",
d = c.getMinutes() + "",
e = c.getMilliseconds() + "";
for (var i = b.length, j = 2; i < j; i++) {
b = "0" + b;
}
for (var i = d.length, j = 2; i < j; i++) {
d = "0" + d;
}
for (var i = e.length, j = 3; i < j; i++) {
e = "0" + e;
}
return b + d + e + (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1) + (((1 + Math.random()) * 0x10000) | 0).toString(16);
})();
}
return result.toUpperCase();
},
username: function (user) {
if (user.companyname) {
return `${user.realname || user.nickname || user.username || user.phone}(${user.companyname})`;
} else {
return user.realname || user.nickname || user.username || user.phone;
}
},
//str保存为文件时,文件的MD5签名
md5: async function (str) {
let fsHash = crypto.createHash('md5');
fsHash.update(Buffer.from(str));
return fsHash.digest('hex');
}
};
module.exports = exports.default;