node-karin 0.0.3 → 0.1.0

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.
Files changed (105) hide show
  1. package/LICENSE +674 -674
  2. package/README.md +57 -57
  3. package/config/defSet/App.yaml +37 -37
  4. package/config/defSet/config.yaml +43 -43
  5. package/config/defSet/group.yaml +18 -18
  6. package/config/defSet/pm2.yaml +21 -21
  7. package/config/defSet/server.yaml +42 -42
  8. package/config/view/App.yaml +74 -74
  9. package/config/view/config.yaml +100 -100
  10. package/config/view/group.yaml +62 -62
  11. package/config/view/pm2.yaml +41 -41
  12. package/config/view/redis.yaml +25 -25
  13. package/config/view/server.yaml +93 -93
  14. package/lib/adapter/onebot/onebot11.d.ts +430 -430
  15. package/lib/adapter/onebot/onebot11.js +1265 -1302
  16. package/lib/core/init.js +4 -4
  17. package/lib/core/karin.d.ts +72 -72
  18. package/lib/core/karin.js +51 -51
  19. package/lib/core/listener.d.ts +121 -121
  20. package/lib/core/listener.js +178 -178
  21. package/lib/core/plugin.app.d.ts +15 -15
  22. package/lib/core/plugin.app.js +18 -18
  23. package/lib/core/plugin.d.ts +182 -182
  24. package/lib/core/plugin.js +132 -132
  25. package/lib/core/plugin.loader.d.ts +149 -149
  26. package/lib/core/plugin.loader.js +451 -451
  27. package/lib/core/server.d.ts +26 -26
  28. package/lib/core/server.js +209 -209
  29. package/lib/db/level.d.ts +20 -20
  30. package/lib/db/level.js +36 -36
  31. package/lib/db/redis.d.ts +41 -41
  32. package/lib/db/redis.js +131 -131
  33. package/lib/db/redis_level.d.ts +113 -113
  34. package/lib/db/redis_level.js +274 -274
  35. package/lib/event/event.d.ts +138 -138
  36. package/lib/event/event.handler.d.ts +29 -29
  37. package/lib/event/event.handler.js +138 -138
  38. package/lib/event/event.js +120 -120
  39. package/lib/event/message.d.ts +102 -102
  40. package/lib/event/message.handler.d.ts +25 -25
  41. package/lib/event/message.handler.js +237 -237
  42. package/lib/event/message.js +69 -69
  43. package/lib/event/notice.d.ts +49 -49
  44. package/lib/event/notice.js +14 -14
  45. package/lib/event/request.d.ts +49 -49
  46. package/lib/event/request.js +14 -14
  47. package/lib/event/review.handler.d.ts +54 -54
  48. package/lib/event/review.handler.js +374 -374
  49. package/lib/index.d.ts +23 -23
  50. package/lib/index.js +39 -40
  51. package/lib/renderer/app.d.ts +53 -53
  52. package/lib/renderer/app.js +88 -88
  53. package/lib/renderer/base.d.ts +30 -30
  54. package/lib/renderer/base.js +68 -68
  55. package/lib/renderer/client.d.ts +30 -30
  56. package/lib/renderer/client.js +155 -155
  57. package/lib/renderer/http.d.ts +19 -19
  58. package/lib/renderer/http.js +50 -50
  59. package/lib/renderer/server.d.ts +42 -42
  60. package/lib/renderer/server.js +110 -110
  61. package/lib/renderer/wormhole.d.ts +1 -1
  62. package/lib/renderer/wormhole.js +154 -154
  63. package/lib/types/adapter.d.ts +575 -575
  64. package/lib/types/adapter.js +1 -1
  65. package/lib/types/config.d.ts +327 -327
  66. package/lib/types/config.js +1 -1
  67. package/lib/types/element.d.ts +576 -576
  68. package/lib/types/element.js +1 -1
  69. package/lib/types/index.d.ts +8 -8
  70. package/lib/types/index.js +8 -8
  71. package/lib/types/logger.d.ts +109 -109
  72. package/lib/types/logger.js +1 -1
  73. package/lib/types/onebots11.d.ts +1371 -1371
  74. package/lib/types/onebots11.js +1 -1
  75. package/lib/types/plugin.d.ts +282 -282
  76. package/lib/types/plugin.js +1 -1
  77. package/lib/types/render.d.ts +111 -111
  78. package/lib/types/render.js +1 -1
  79. package/lib/types/reply.d.ts +40 -40
  80. package/lib/types/reply.js +1 -1
  81. package/lib/types/types.d.ts +898 -898
  82. package/lib/types/types.js +1 -1
  83. package/lib/utils/YamlEditor.d.ts +62 -62
  84. package/lib/utils/YamlEditor.js +197 -197
  85. package/lib/utils/button.d.ts +49 -49
  86. package/lib/utils/button.js +75 -75
  87. package/lib/utils/common.d.ts +123 -123
  88. package/lib/utils/common.js +396 -396
  89. package/lib/utils/config.d.ts +72 -72
  90. package/lib/utils/config.js +254 -254
  91. package/lib/utils/exec.d.ts +22 -22
  92. package/lib/utils/exec.js +36 -36
  93. package/lib/utils/ffmpeg.d.ts +12 -12
  94. package/lib/utils/ffmpeg.js +25 -25
  95. package/lib/utils/handler.d.ts +76 -76
  96. package/lib/utils/handler.js +98 -98
  97. package/lib/utils/logger.d.ts +3 -3
  98. package/lib/utils/logger.js +104 -104
  99. package/lib/utils/segment.d.ts +276 -276
  100. package/lib/utils/segment.js +420 -420
  101. package/lib/utils/update.d.ts +69 -69
  102. package/lib/utils/update.js +145 -145
  103. package/lib/utils/updateVersion.d.ts +33 -33
  104. package/lib/utils/updateVersion.js +140 -140
  105. package/package.json +92 -91
@@ -1,22 +1,22 @@
1
- /**
2
- * 执行 shell 命令
3
- * @param cmd 命令
4
- * @param log 是否打印日志
5
- * @param options 选项
6
- */
7
- export declare const exec: (cmd: string, log?: boolean, options?: {
8
- cwd: string;
9
- encoding: string;
10
- }) => Promise<{
11
- /**
12
- * - 执行状态
13
- */
14
- status: 'ok' | 'failed';
15
- /**
16
- * - 错误信息
17
- */
18
- error: Error | null;
19
- stdout: string | '';
20
- stderr: string | '';
21
- }>;
22
- export default exec;
1
+ /**
2
+ * 执行 shell 命令
3
+ * @param cmd 命令
4
+ * @param log 是否打印日志
5
+ * @param options 选项
6
+ */
7
+ export declare const exec: (cmd: string, log?: boolean, options?: {
8
+ cwd: string;
9
+ encoding: string;
10
+ }) => Promise<{
11
+ /**
12
+ * - 执行状态
13
+ */
14
+ status: 'ok' | 'failed';
15
+ /**
16
+ * - 错误信息
17
+ */
18
+ error: Error | null;
19
+ stdout: string | '';
20
+ stderr: string | '';
21
+ }>;
22
+ export default exec;
package/lib/utils/exec.js CHANGED
@@ -1,36 +1,36 @@
1
- import logger from './logger.js'
2
- import { exec as execCmd } from 'child_process'
3
- /**
4
- * 执行 shell 命令
5
- * @param cmd 命令
6
- * @param log 是否打印日志
7
- * @param options 选项
8
- */
9
- export const exec = (cmd, log = true, options = { cwd: process.cwd(), encoding: 'utf-8' }) => {
10
- return new Promise(resolve => {
11
- const logMessage = (level, message) => {
12
- if (log) { logger[level](message) }
13
- }
14
- const logType = (status) => {
15
- switch (status) {
16
- case '开始执行':
17
- return logger.yellow('[exec][开始执行]')
18
- case 'ok':
19
- return logger.green('[exec][执行成功]')
20
- case 'failed':
21
- return logger.red('[exec][执行失败]')
22
- }
23
- }
24
- const formatMessage = (status, details) => [logType(status), `cmd: ${cmd}`, `cwd: ${options.cwd || process.cwd()}`, details, '--------'].join('\n')
25
- logMessage('info', formatMessage('开始执行', ''))
26
- execCmd(cmd, options, (error, stdout, stderr) => {
27
- if (error) {
28
- logMessage('error', formatMessage('failed', `Error: ${error.message || error.stack || error.toString()}`))
29
- return resolve({ status: 'failed', error, stdout, stderr })
30
- }
31
- logMessage('mark', formatMessage('ok', `stdout: ${stdout}\nstderr: ${stderr}`))
32
- resolve({ status: 'ok', error, stdout, stderr })
33
- })
34
- })
35
- }
36
- export default exec
1
+ import logger from './logger.js'
2
+ import { exec as execCmd } from 'child_process'
3
+ /**
4
+ * 执行 shell 命令
5
+ * @param cmd 命令
6
+ * @param log 是否打印日志
7
+ * @param options 选项
8
+ */
9
+ export const exec = (cmd, log = true, options = { cwd: process.cwd(), encoding: 'utf-8' }) => {
10
+ return new Promise(resolve => {
11
+ const logMessage = (level, message) => {
12
+ if (log) { logger[level](message) }
13
+ }
14
+ const logType = (status) => {
15
+ switch (status) {
16
+ case '开始执行':
17
+ return logger.yellow('[exec][开始执行]')
18
+ case 'ok':
19
+ return logger.green('[exec][执行成功]')
20
+ case 'failed':
21
+ return logger.red('[exec][执行失败]')
22
+ }
23
+ }
24
+ const formatMessage = (status, details) => [logType(status), `cmd: ${cmd}`, `cwd: ${options.cwd || process.cwd()}`, details, '--------'].join('\n')
25
+ logMessage('info', formatMessage('开始执行', ''))
26
+ execCmd(cmd, options, (error, stdout, stderr) => {
27
+ if (error) {
28
+ logMessage('error', formatMessage('failed', `Error: ${error.message || error.stack || error.toString()}`))
29
+ return resolve({ status: 'failed', error, stdout, stderr })
30
+ }
31
+ logMessage('mark', formatMessage('ok', `stdout: ${stdout}\nstderr: ${stderr}`))
32
+ resolve({ status: 'ok', error, stdout, stderr })
33
+ })
34
+ })
35
+ }
36
+ export default exec
@@ -1,12 +1,12 @@
1
- /**
2
- * 执行 ffmpeg 命令
3
- */
4
- export default function ffmpeg(): Promise<false | ((cmd: string, log?: boolean, options?: {
5
- cwd: string;
6
- encoding: string;
7
- }) => Promise<{
8
- status: "failed" | "ok";
9
- error: Error | null;
10
- stdout: string;
11
- stderr: string;
12
- }>)>;
1
+ /**
2
+ * 执行 ffmpeg 命令
3
+ */
4
+ export default function ffmpeg(): Promise<false | ((cmd: string, log?: boolean, options?: {
5
+ cwd: string;
6
+ encoding: string;
7
+ }) => Promise<{
8
+ status: "failed" | "ok";
9
+ error: Error | null;
10
+ stdout: string;
11
+ stderr: string;
12
+ }>)>;
@@ -1,25 +1,25 @@
1
- import exec from './exec.js'
2
- import logger from './logger.js'
3
- import Config from './config.js'
4
- /**
5
- * 执行 ffmpeg 命令
6
- */
7
- export default async function ffmpeg () {
8
- let ffmpeg = 'ffmpeg'
9
- const { status } = await exec('ffmpeg -version', false)
10
- if (status !== 'ok') {
11
- logger.debug('ffmpeg 未安装,开始尝试读取配置文件是否存在ffmpeg路径')
12
- const ffmpegPath = Config.Config.ffmpeg_path
13
- if (!ffmpegPath) {
14
- logger.warn('ffmpeg 未安装,请安装 ffmpeg 或手动配置 ffmpeg 路径后重启')
15
- return false
16
- }
17
- ffmpeg = `"${ffmpegPath}"`
18
- }
19
- // 返回函数
20
- return async (cmd, log = true, options = { cwd: process.cwd(), encoding: 'utf-8' }) => {
21
- cmd = cmd.replace(/^ffmpeg/, '').trim()
22
- cmd = `${ffmpeg} ${cmd}`
23
- return await exec(cmd, log, options)
24
- }
25
- }
1
+ import exec from './exec.js'
2
+ import logger from './logger.js'
3
+ import Config from './config.js'
4
+ /**
5
+ * 执行 ffmpeg 命令
6
+ */
7
+ export default async function ffmpeg () {
8
+ let ffmpeg = 'ffmpeg'
9
+ const { status } = await exec('ffmpeg -version', false)
10
+ if (status !== 'ok') {
11
+ logger.debug('ffmpeg 未安装,开始尝试读取配置文件是否存在ffmpeg路径')
12
+ const ffmpegPath = Config.Config.ffmpeg_path
13
+ if (!ffmpegPath) {
14
+ logger.warn('ffmpeg 未安装,请安装 ffmpeg 或手动配置 ffmpeg 路径后重启')
15
+ return false
16
+ }
17
+ ffmpeg = `"${ffmpegPath}"`
18
+ }
19
+ // 返回函数
20
+ return async (cmd, log = true, options = { cwd: process.cwd(), encoding: 'utf-8' }) => {
21
+ cmd = cmd.replace(/^ffmpeg/, '').trim()
22
+ cmd = `${ffmpeg} ${cmd}`
23
+ return await exec(cmd, log, options)
24
+ }
25
+ }
@@ -1,76 +1,76 @@
1
- import Plugin from '../core/plugin.js';
2
- import { dirName, fileName } from '../types/plugin.js';
3
- /**
4
- * 事件处理器类
5
- */
6
- declare const _default: {
7
- events: {
8
- [key: string]: {
9
- /**
10
- * - 文件信息
11
- */
12
- file: {
13
- /**
14
- * - 插件包名称
15
- */
16
- dir: dirName;
17
- /**
18
- * - 文件名称
19
- */
20
- name: fileName;
21
- };
22
- /**
23
- * - 事件class
24
- */
25
- App: new () => Plugin;
26
- /**
27
- * - 事件键
28
- */
29
- key: string;
30
- /**
31
- * - 事件处理函数名称
32
- */
33
- fnc: string;
34
- /**
35
- * - 优先级
36
- */
37
- priority: number;
38
- }[];
39
- };
40
- /**
41
- * 添加事件处理器
42
- * @param {Object} config 配置对象
43
- * @param {string} config.name 处理器名称
44
- * @param {string} config.dir 处理器所在目录
45
- * @param {Function} config.App 应用构造函数
46
- * @param {Object} config.Class 类配置
47
- */
48
- add({ name, dir, App, Class }: {
49
- dir: dirName;
50
- name: fileName;
51
- App: new () => Plugin;
52
- Class: Plugin;
53
- }): void;
54
- /**
55
- * 删除事件处理器
56
- */
57
- del({ dir, name, key, }: {
58
- dir: dirName | '';
59
- name: fileName | '';
60
- /**
61
- * 事件键 未传入则删除所有处理器
62
- */
63
- key: string | '';
64
- }): boolean;
65
- /**
66
- * 调用事件处理器
67
- * @param key 事件键
68
- * @param args 自定义参数 一般用来传递e之类的
69
- */
70
- call(key: string, args?: {}): Promise<any>;
71
- /**
72
- * 检查是否存在指定键的事件处理器
73
- */
74
- has(key: string): boolean;
75
- };
76
- export default _default;
1
+ import Plugin from '../core/plugin.js';
2
+ import { dirName, fileName } from '../types/plugin.js';
3
+ /**
4
+ * 事件处理器类
5
+ */
6
+ declare const _default: {
7
+ events: {
8
+ [key: string]: {
9
+ /**
10
+ * - 文件信息
11
+ */
12
+ file: {
13
+ /**
14
+ * - 插件包名称
15
+ */
16
+ dir: dirName;
17
+ /**
18
+ * - 文件名称
19
+ */
20
+ name: fileName;
21
+ };
22
+ /**
23
+ * - 事件class
24
+ */
25
+ App: new () => Plugin;
26
+ /**
27
+ * - 事件键
28
+ */
29
+ key: string;
30
+ /**
31
+ * - 事件处理函数名称
32
+ */
33
+ fnc: string;
34
+ /**
35
+ * - 优先级
36
+ */
37
+ priority: number;
38
+ }[];
39
+ };
40
+ /**
41
+ * 添加事件处理器
42
+ * @param {Object} config 配置对象
43
+ * @param {string} config.name 处理器名称
44
+ * @param {string} config.dir 处理器所在目录
45
+ * @param {Function} config.App 应用构造函数
46
+ * @param {Object} config.Class 类配置
47
+ */
48
+ add({ name, dir, App, Class }: {
49
+ dir: dirName;
50
+ name: fileName;
51
+ App: new () => Plugin;
52
+ Class: Plugin;
53
+ }): void;
54
+ /**
55
+ * 删除事件处理器
56
+ */
57
+ del({ dir, name, key, }: {
58
+ dir: dirName | '';
59
+ name: fileName | '';
60
+ /**
61
+ * 事件键 未传入则删除所有处理器
62
+ */
63
+ key: string | '';
64
+ }): boolean;
65
+ /**
66
+ * 调用事件处理器
67
+ * @param key 事件键
68
+ * @param args 自定义参数 一般用来传递e之类的
69
+ */
70
+ call(key: string, args?: {}): Promise<any>;
71
+ /**
72
+ * 检查是否存在指定键的事件处理器
73
+ */
74
+ has(key: string): boolean;
75
+ };
76
+ export default _default;
@@ -1,102 +1,102 @@
1
- import util from 'util'
2
- import lodash from 'lodash'
3
- import logger from './logger.js'
4
- /**
5
- * 事件处理器类
6
- */
7
- export default new (class EventHandler {
8
- events
9
- constructor () {
10
- this.events = {}
1
+ import util from 'util'
2
+ import lodash from 'lodash'
3
+ import logger from './logger.js'
4
+ /**
5
+ * 事件处理器类
6
+ */
7
+ export default new (class EventHandler {
8
+ events
9
+ constructor () {
10
+ this.events = {}
11
11
  }
12
-
13
- /**
14
- * 添加事件处理器
15
- * @param {Object} config 配置对象
16
- * @param {string} config.name 处理器名称
17
- * @param {string} config.dir 处理器所在目录
18
- * @param {Function} config.App 应用构造函数
19
- * @param {Object} config.Class 类配置
20
- */
21
- add ({ name, dir, App, Class }) {
22
- for (const cfg of Class.handler) {
23
- const { key = '', fnc = '', priority = 2000 } = cfg
24
- if (!key) {
25
- return logger.error(`[Handler][Add]: [${name}] 缺少 key`)
26
- }
27
- if (!fnc) {
28
- return logger.error(`[Handler][Add]: [${name}] 缺少 fnc`)
29
- }
30
- logger.debug(`[Handler][Reg]: [${name}][${key}]`)
31
- if (!Array.isArray(this.events[key])) { this.events[key] = [] }
32
- this.events[key].push({ file: { name, dir }, App, key, fnc, priority })
33
- this.events[key] = lodash.orderBy(this.events[key], ['priority'], ['asc'])
34
- }
12
+
13
+ /**
14
+ * 添加事件处理器
15
+ * @param {Object} config 配置对象
16
+ * @param {string} config.name 处理器名称
17
+ * @param {string} config.dir 处理器所在目录
18
+ * @param {Function} config.App 应用构造函数
19
+ * @param {Object} config.Class 类配置
20
+ */
21
+ add ({ name, dir, App, Class }) {
22
+ for (const cfg of Class.handler) {
23
+ const { key = '', fnc = '', priority = 2000 } = cfg
24
+ if (!key) {
25
+ return logger.error(`[Handler][Add]: [${name}] 缺少 key`)
26
+ }
27
+ if (!fnc) {
28
+ return logger.error(`[Handler][Add]: [${name}] 缺少 fnc`)
29
+ }
30
+ logger.debug(`[Handler][Reg]: [${name}][${key}]`)
31
+ if (!Array.isArray(this.events[key])) { this.events[key] = [] }
32
+ this.events[key].push({ file: { name, dir }, App, key, fnc, priority })
33
+ this.events[key] = lodash.orderBy(this.events[key], ['priority'], ['asc'])
34
+ }
35
35
  }
36
-
37
- /**
38
- * 删除事件处理器
39
- */
40
- del ({ dir = '', name = '', key = '' }) {
41
- /** 这里是删除所有 全部重新初始化 */
42
- if (!key && !dir && !name) {
43
- this.events = {}
44
- return true
45
- }
46
- /** 热重载 删除指定目录 */
47
- if (!key) {
48
- for (const v of Object.keys(this.events)) {
49
- this.events[v] = this.events[v].filter(v => v.file.dir !== dir || v.file.name !== name)
50
- // 如果处理器为空则删除键
51
- if (!this.events[v].length) {
52
- delete this.events[v]
53
- } else {
54
- this.events[v] = lodash.orderBy(this.events[v], ['priority'], ['asc'])
55
- }
56
- }
57
- return true
58
- }
59
- if (!this.events[key]) { return false }
60
- this.events[key] = this.events[key].filter(v => v.file.dir !== dir || v.file.name !== name)
61
- this.events[key] = lodash.orderBy(this.events[key], ['priority'], ['asc'])
62
- return true
36
+
37
+ /**
38
+ * 删除事件处理器
39
+ */
40
+ del ({ dir = '', name = '', key = '' }) {
41
+ /** 这里是删除所有 全部重新初始化 */
42
+ if (!key && !dir && !name) {
43
+ this.events = {}
44
+ return true
45
+ }
46
+ /** 热重载 删除指定目录 */
47
+ if (!key) {
48
+ for (const v of Object.keys(this.events)) {
49
+ this.events[v] = this.events[v].filter(v => v.file.dir !== dir || v.file.name !== name)
50
+ // 如果处理器为空则删除键
51
+ if (!this.events[v].length) {
52
+ delete this.events[v]
53
+ } else {
54
+ this.events[v] = lodash.orderBy(this.events[v], ['priority'], ['asc'])
55
+ }
56
+ }
57
+ return true
58
+ }
59
+ if (!this.events[key]) { return false }
60
+ this.events[key] = this.events[key].filter(v => v.file.dir !== dir || v.file.name !== name)
61
+ this.events[key] = lodash.orderBy(this.events[key], ['priority'], ['asc'])
62
+ return true
63
63
  }
64
-
65
- /**
66
- * 调用事件处理器
67
- * @param key 事件键
68
- * @param args 自定义参数 一般用来传递e之类的
69
- */
70
- async call (key, args = {}) {
71
- let ret
72
- for (const v of this.events[key] || []) {
73
- const App = new v.App()
74
- if ('e' in args && args.e) { App.e = args.e }
75
- let done = true
76
- // 标记函数,用于标记处理器是否执行成功,由处理器自行调用,如果未调用则认为处理器未执行成功
77
- const reject = (msg = '') => {
78
- if (msg) { logger.mark(`[Handler][Reject]: [${v.file.dir}][${v.file.name}][${key}] ${msg}`) }
79
- done = false
80
- }
81
- try {
82
- ret = await App[v.fnc](args, reject)
83
- if (util.types.isPromise(ret)) { ret = await ret }
84
- if (done) {
85
- logger.mark(`[Handler][Done]: [${v.file.dir}][${v.file.name}][${key}]`)
86
- return ret
87
- }
88
- } catch (e) {
89
- // 产生错误继续下一个处理器
90
- logger.error(`[Handler][Error]: [${v.file.dir}][${v.file.name}][${key}] ${e}`)
91
- }
92
- }
93
- return ret
64
+
65
+ /**
66
+ * 调用事件处理器
67
+ * @param key 事件键
68
+ * @param args 自定义参数 一般用来传递e之类的
69
+ */
70
+ async call (key, args = {}) {
71
+ let ret
72
+ for (const v of this.events[key] || []) {
73
+ const App = new v.App()
74
+ if ('e' in args && args.e) { App.e = args.e }
75
+ let done = true
76
+ // 标记函数,用于标记处理器是否执行成功,由处理器自行调用,如果未调用则认为处理器未执行成功
77
+ const reject = (msg = '') => {
78
+ if (msg) { logger.mark(`[Handler][Reject]: [${v.file.dir}][${v.file.name}][${key}] ${msg}`) }
79
+ done = false
80
+ }
81
+ try {
82
+ ret = await App[v.fnc](args, reject)
83
+ if (util.types.isPromise(ret)) { ret = await ret }
84
+ if (done) {
85
+ logger.mark(`[Handler][Done]: [${v.file.dir}][${v.file.name}][${key}]`)
86
+ return ret
87
+ }
88
+ } catch (e) {
89
+ // 产生错误继续下一个处理器
90
+ logger.error(`[Handler][Error]: [${v.file.dir}][${v.file.name}][${key}] ${e}`)
91
+ }
92
+ }
93
+ return ret
94
94
  }
95
-
96
- /**
97
- * 检查是否存在指定键的事件处理器
98
- */
99
- has (key) {
100
- return !!this.events[key]
101
- }
102
- })()
95
+
96
+ /**
97
+ * 检查是否存在指定键的事件处理器
98
+ */
99
+ has (key) {
100
+ return !!this.events[key]
101
+ }
102
+ })()
@@ -1,3 +1,3 @@
1
- import log4js from 'log4js';
2
- declare const logger: log4js.Logger;
3
- export default logger;
1
+ import log4js from 'log4js';
2
+ declare const logger: log4js.Logger;
3
+ export default logger;