mm_expand 1.7.4 → 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 CHANGED
@@ -41,8 +41,10 @@ const {
41
41
  createDecipheriv
42
42
  } = require('crypto');
43
43
 
44
- const Base = require('./base.js');
45
- const Lang = require('./lang.js');
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
  // 任务池, 用于存储定时任务操作类
@@ -1108,23 +1055,19 @@ if (typeof($) === "undefined") {
1108
1055
  }
1109
1056
  };
1110
1057
  /**
1111
- * @description 转为时间对象
1112
- * @return {Date} 返回时间对象类型
1058
+ * @description Convert to time object
1059
+ * @return {Date} time object
1113
1060
  */
1114
1061
  String.prototype.toTime = function() {
1115
1062
  var str = this;
1116
1063
  var time;
1117
1064
  if (str.indexOf('T') !== -1) {
1118
- // str = this.replace('T', ' ').replaceAll('-', '/');
1119
- str = this.replace('T', ' ');
1120
- if (str.indexOf('Z') !== -1) {
1121
- str = str.replace('Z', '');
1122
- time = (new Date(str)).addSeconds(28800);
1123
- } else {
1124
- time = new Date(str);
1125
- }
1065
+ str = str.replace('T', ' ');
1066
+ }
1067
+ if (str.indexOf('Z') !== -1) {
1068
+ str = str.replace('Z', '');
1069
+ time = (new Date(str)).addSeconds(28800);
1126
1070
  } else {
1127
- // str = this.replaceAll('-', '/');
1128
1071
  time = new Date(str);
1129
1072
  }
1130
1073
  return time;
@@ -2944,6 +2887,7 @@ if (typeof($) === "undefined") {
2944
2887
  })();
2945
2888
 
2946
2889
  module.exports = {
2890
+ Eventer,
2947
2891
  Lang,
2948
2892
  Base
2949
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mm_expand",
3
- "version": "1.7.4",
3
+ "version": "1.7.6",
4
4
  "description": "这是超级美眉原型函数拓展模块,更有利于对string、array、object的操作,避免出错,简化业务逻辑。",
5
5
  "main": "index.js",
6
6
  "scripts": {
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
 
@@ -8,7 +60,6 @@ require('./index.js');
8
60
  // console.log(t.toTimestamp());
9
61
  // console.log(t.toTimeStr('yyyy-MM-dd hh:mm:ss'));
10
62
  // console.log(t.toTimeStr('yyyy-MM-ddThh:mm:ssZ'));
11
-
12
63
  // var index = $.eventer.on('update_config', (conf) => {
13
64
  // console.log("事件示例", conf);
14
65
  // });
@@ -42,16 +93,19 @@ require('./index.js');
42
93
  // var bl = "44142319910401801T".checkFormat('idcard');
43
94
  // console.log("校验格式", bl);
44
95
 
45
- var now = new Date();
46
- var str = now;
47
- console.log("时间", str);
48
- console.log("时间", str.toString());
49
- console.log("当前", new Date(str.toString()).toStr("yyyy-MM-dd hh:mm:ss"));
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"));
50
103
 
51
- var time = now.toStr('yyyy-MM-dd hh:mm:ss');
52
- console.log("当前", time);
53
- console.log("时间", time.toTime().toStr("yyyy-MM-dd hh:mm:ss"));
54
- console.log("当前", new Date(time).toStr("yyyy-MM-dd hh:mm:ss"));
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);
File without changes
File without changes