-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathutils.js
57 lines (56 loc) · 1.95 KB
/
utils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
};
module.exports = {
format(src) {
if (arguments.length == 0) return null;
var args = Array.prototype.slice.call(arguments, 1);
return src.replace(/\{(\d+)\}/g, function (m, i) {
return args[i];
});
},
log(desc, type = this.LogInfo) {
console.log(this.format('[{0}][Synapse {1}] {2}', new Date().format("yyyy-MM-dd hh:mm:ss"), type, desc));
},
getFuncName(callee) {
var _callee = callee.toString().replace(/[\s\?]*/g, "");
var comb = _callee.length >= 50 ? 50 : _callee.length;
_callee = _callee.substring(0, comb);
var name = _callee.match(/^function([^\(]+?)\(/);
if (name && name[1]) {
return name[1];
} else {
return '{anonymous}';
}
},
randomString(len = 20) {
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
var maxPos = chars.length;
var pwd = '';
for (var i = 0; i < len; i++) {
pwd += chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
},
LogInfo: "Info",
LogDebug: "Debug",
LogWarn: "Warn",
LogError: "Error"
};