MCPcopy
hub / github.com/alibaba/lowcode-engine / EventBus

Class EventBus

packages/editor-core/src/event-bus.ts:15–101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13}
14
15export class EventBus implements IEventBus {
16 private readonly eventEmitter: EventEmitter;
17 private readonly name?: string;
18
19 /**
20 * 内核触发的事件名
21 */
22 readonly names = [];
23
24 constructor(emitter: EventEmitter, name?: string) {
25 this.eventEmitter = emitter;
26 this.name = name;
27 }
28
29 private getMsgPrefix(type: string): string {
30 if (this.name && this.name.length > 0) {
31 return `[${this.name}][event-${type}]`;
32 } else {
33 return `[*][event-${type}]`;
34 }
35 }
36
37 private getLogger(): Logger {
38 if (this.name && this.name.length > 0) {
39 return moduleLogger;
40 } else {
41 return logger;
42 }
43 }
44
45 /**
46 * 监听事件
47 * @param event 事件名称
48 * @param listener 事件回调
49 */
50 on(event: string, listener: (...args: any[]) => void): () => void {
51 this.eventEmitter.on(event, listener);
52 this.getLogger().debug(`${this.getMsgPrefix('on')} ${event}`);
53 return () => {
54 this.off(event, listener);
55 };
56 }
57
58 prependListener(event: string, listener: (...args: any[]) => void): () => void {
59 this.eventEmitter.prependListener(event, listener);
60 this.getLogger().debug(`${this.getMsgPrefix('prependListener')} ${event}`);
61 return () => {
62 this.off(event, listener);
63 };
64 }
65
66 /**
67 * 取消监听事件
68 * @param event 事件名称
69 * @param listener 事件回调
70 */
71 off(event: string, listener: (...args: any[]) => void) {
72 this.eventEmitter.off(event, listener);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…