mm_expand 1.7.5 → 1.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +6 -58
- package/lib/eventer.js +77 -0
- package/package.json +1 -1
- package/test.js +65 -11
- /package/{base.js → lib/base.js} +0 -0
- /package/{lang.js → lib/lang.js} +0 -0
package/index.js
CHANGED
|
@@ -41,8 +41,10 @@ const {
|
|
|
41
41
|
createDecipheriv
|
|
42
42
|
} = require('crypto');
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
var Base = require('./lib/base.js');
|
|
45
|
+
var Lang = require('./lib/lang.js');
|
|
46
|
+
var Eventer = require('./lib/eventer.js');
|
|
47
|
+
|
|
46
48
|
|
|
47
49
|
/**
|
|
48
50
|
* @type {String}
|
|
@@ -486,61 +488,6 @@ function keys(obj, file) {
|
|
|
486
488
|
}
|
|
487
489
|
|
|
488
490
|
|
|
489
|
-
class Eventer {
|
|
490
|
-
constructor() {
|
|
491
|
-
this.dict = {};
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
/**
|
|
496
|
-
* 监听事件
|
|
497
|
-
* @param {String} key 事件关键
|
|
498
|
-
* @param {Object} func 触发函数
|
|
499
|
-
*/
|
|
500
|
-
Eventer.prototype.on = function(key, func) {
|
|
501
|
-
var events = this.dict;
|
|
502
|
-
if (!events[key]) {
|
|
503
|
-
events[key] = [];
|
|
504
|
-
}
|
|
505
|
-
events[key].push(func);
|
|
506
|
-
return events[key].length - 1;
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
/**
|
|
510
|
-
* 执行事件
|
|
511
|
-
* @param {String} key 事件关键
|
|
512
|
-
* @param {Object} params 传递参数
|
|
513
|
-
*/
|
|
514
|
-
Eventer.prototype.run = function(key, ...params) {
|
|
515
|
-
var events = this.dict;
|
|
516
|
-
var list = events[key];
|
|
517
|
-
if (list) {
|
|
518
|
-
for (var i = 0; i < list.length; i++) {
|
|
519
|
-
try {
|
|
520
|
-
list[i](...params);
|
|
521
|
-
} catch (e) {
|
|
522
|
-
console.error(e);
|
|
523
|
-
//TODO handle the exception
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
/**
|
|
530
|
-
* 删除事件
|
|
531
|
-
* @param {String} key 事件关键
|
|
532
|
-
* @param {Number} index 事件集索引
|
|
533
|
-
*/
|
|
534
|
-
Eventer.prototype.del = function(key, index = -1) {
|
|
535
|
-
var events = this.dict;
|
|
536
|
-
if (index > -1) {
|
|
537
|
-
var list = events[key];
|
|
538
|
-
list.splice(index, 1);
|
|
539
|
-
} else {
|
|
540
|
-
delete events[key];
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
|
|
544
491
|
/**
|
|
545
492
|
* @namespace
|
|
546
493
|
* @property {Object} pool 数据连接池, 用于存储有关数据库的操作类
|
|
@@ -571,7 +518,7 @@ if (typeof($) === "undefined") {
|
|
|
571
518
|
Base,
|
|
572
519
|
// 语言包类
|
|
573
520
|
Lang,
|
|
574
|
-
eventer: new Eventer,
|
|
521
|
+
eventer: new Eventer(),
|
|
575
522
|
// 数据连接池, 用于存储有关数据库的操作类
|
|
576
523
|
pool: {},
|
|
577
524
|
// 任务池, 用于存储定时任务操作类
|
|
@@ -2940,6 +2887,7 @@ if (typeof($) === "undefined") {
|
|
|
2940
2887
|
})();
|
|
2941
2888
|
|
|
2942
2889
|
module.exports = {
|
|
2890
|
+
Eventer,
|
|
2943
2891
|
Lang,
|
|
2944
2892
|
Base
|
|
2945
2893
|
};
|
package/lib/eventer.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
class Eventer {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.dict = {};
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 监听事件
|
|
9
|
+
* @param {String} key 事件关键
|
|
10
|
+
* @param {Object} func 触发函数
|
|
11
|
+
* @param {String} name 增加名称,方便删除,当出现相同名称时会被覆盖
|
|
12
|
+
*/
|
|
13
|
+
Eventer.prototype.on = function(key, func, name) {
|
|
14
|
+
var events = this.dict;
|
|
15
|
+
if (!events[key]) {
|
|
16
|
+
events[key] = [];
|
|
17
|
+
}
|
|
18
|
+
if (!name) {
|
|
19
|
+
name = func.name || 'default';
|
|
20
|
+
}
|
|
21
|
+
var obj = {
|
|
22
|
+
name,
|
|
23
|
+
func
|
|
24
|
+
};
|
|
25
|
+
var o = events[key].getObj({
|
|
26
|
+
name
|
|
27
|
+
});
|
|
28
|
+
if (o) {
|
|
29
|
+
Object.assign(o, obj);
|
|
30
|
+
} else {
|
|
31
|
+
events[key].push(obj);
|
|
32
|
+
}
|
|
33
|
+
return events[key].length - 1;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* 执行事件
|
|
38
|
+
* @param {String} key 事件关键
|
|
39
|
+
* @param {Object} params 传递参数
|
|
40
|
+
*/
|
|
41
|
+
Eventer.prototype.run = function(key, ...params) {
|
|
42
|
+
var events = this.dict;
|
|
43
|
+
var list = events[key];
|
|
44
|
+
if (list) {
|
|
45
|
+
for (var i = 0; i < list.length; i++) {
|
|
46
|
+
try {
|
|
47
|
+
list[i].func(...params);
|
|
48
|
+
} catch (e) {
|
|
49
|
+
$.log.error("执行事件失败!", e);
|
|
50
|
+
//TODO handle the exception
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 删除事件
|
|
58
|
+
* @param {String} key 事件关键
|
|
59
|
+
* @param {Number} indexOrName 事件集索引或名称
|
|
60
|
+
*/
|
|
61
|
+
Eventer.prototype.del = function(key, indexOrName) {
|
|
62
|
+
var events = this.dict;
|
|
63
|
+
if (indexOrName) {
|
|
64
|
+
var list = events[key];
|
|
65
|
+
if (typeof(indexOrName) == "number") {
|
|
66
|
+
list.splice(indexOrName, 1);
|
|
67
|
+
} else {
|
|
68
|
+
list.del({
|
|
69
|
+
name: indexOrName
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
} else {
|
|
73
|
+
delete events[key];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
module.exports = Eventer;
|
package/package.json
CHANGED
package/test.js
CHANGED
|
@@ -1,6 +1,58 @@
|
|
|
1
1
|
require('./index.js');
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
// 创建事件监听
|
|
5
|
+
// 用自定义名称方式创建
|
|
6
|
+
$.eventer.on("mysql_add", function(json) {
|
|
7
|
+
console.log("收到1", json);
|
|
8
|
+
}, "test");
|
|
9
|
+
|
|
10
|
+
// 用函数名方式创建
|
|
11
|
+
$.eventer.on("mysql_add", function test2(json) {
|
|
12
|
+
console.log("收到2", json);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
// 用预先定义好的名称创建
|
|
16
|
+
var test3 = function(json) {
|
|
17
|
+
console.log("收到3", json);
|
|
18
|
+
}
|
|
19
|
+
$.eventer.on("mysql_add", test3);
|
|
20
|
+
|
|
21
|
+
// 用匿名方式创建,此创建法会导致被其他注册函数覆盖,不建议使用
|
|
22
|
+
$.eventer.on("mysql_add", function(json) {
|
|
23
|
+
console.log("收到", json);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
// 用对象属性函数创建,此创建法如果没有声明函数,将会匿名创建
|
|
27
|
+
// var oo = {};
|
|
28
|
+
// oo.test4 = function (json) {
|
|
29
|
+
// console.log("收到4", json);
|
|
30
|
+
// }
|
|
31
|
+
// $.eventer.on("mysql_add", oo.test4);
|
|
32
|
+
|
|
33
|
+
var param = {
|
|
34
|
+
table: "user_account",
|
|
35
|
+
query: {},
|
|
36
|
+
body: {
|
|
37
|
+
"name": "张三丰",
|
|
38
|
+
"age": 24
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// 执行事件
|
|
43
|
+
$.eventer.run("mysql_add", param);
|
|
44
|
+
|
|
45
|
+
// 查看有哪些事件
|
|
46
|
+
console.log("事件集", $.eventer.dict);
|
|
47
|
+
|
|
48
|
+
// 移除触发事件
|
|
49
|
+
$.eventer.del("mysql_add", "test");
|
|
50
|
+
console.log("事件集", $.eventer.dict);
|
|
51
|
+
|
|
52
|
+
// 移除事件集
|
|
53
|
+
$.eventer.del("mysql_add");
|
|
54
|
+
console.log("事件集", $.eventer.dict);
|
|
55
|
+
|
|
4
56
|
// var n = 1725059734;
|
|
5
57
|
// console.log(n.toTimeStr('yyyy-MM-dd hh:mm:ss'));
|
|
6
58
|
|
|
@@ -41,17 +93,19 @@ require('./index.js');
|
|
|
41
93
|
// var bl = "44142319910401801T".checkFormat('idcard');
|
|
42
94
|
// console.log("校验格式", bl);
|
|
43
95
|
|
|
44
|
-
|
|
45
|
-
var str = now;
|
|
46
|
-
console.log("时间", str);
|
|
47
|
-
console.log("时间", str.toString());
|
|
48
|
-
console.log("当前",
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
console.log("当前",
|
|
54
|
-
console.log(
|
|
96
|
+
// var now = new Date();
|
|
97
|
+
// var str = now;
|
|
98
|
+
// console.log("时间", str);
|
|
99
|
+
// console.log("时间", str.toString());
|
|
100
|
+
// console.log("当前", str.toStr("yyyy-MM-dd hh:mm:ss"));
|
|
101
|
+
// console.log("当前", new Date(str.toString()).toStr("yyyy-MM-dd hh:mm:ss"));
|
|
102
|
+
// console.log("当前", str.toStr("yyyy-MM-ddThh:mm:ss.000Z"));
|
|
103
|
+
|
|
104
|
+
// var time = now.toStr('yyyy-MM-dd hh:mm:ss');
|
|
105
|
+
// console.log("当前", time);
|
|
106
|
+
// console.log("时间", time.toTime().toStr("yyyy-MM-dd hh:mm:ss"));
|
|
107
|
+
// console.log("当前", new Date(time).toStr("yyyy-MM-dd hh:mm:ss"));
|
|
108
|
+
// console.log(now.toString(), now.toString().toTime().toStr('yyyy-MM-dd hh:mm:ss'));
|
|
55
109
|
|
|
56
110
|
// var time = now.toStr("yyyy-MM-ddThh:mm");
|
|
57
111
|
// console.log("当前", time);
|
/package/{base.js → lib/base.js}
RENAMED
|
File without changes
|
/package/{lang.js → lib/lang.js}
RENAMED
|
File without changes
|