UNPKG

@glodon-aiot/agent-cli-sdk

Version:

aiot agent client js sdk

65 lines (64 loc) 2.02 kB
var u = Object.defineProperty; var v = Object.getOwnPropertySymbols; var o = Object.prototype.hasOwnProperty, L = Object.prototype.propertyIsEnumerable; var l = (s, e, n) => e in s ? u(s, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : s[e] = n, a = (s, e) => { for (var n in e || (e = {})) o.call(e, n) && l(s, n, e[n]); if (v) for (var n of v(e)) L.call(e, n) && l(s, n, e[n]); return s; }; var h = (s, e, n) => (l(s, typeof e != "symbol" ? e + "" : e, n), n); import M from "./Logger.mjs"; const i = new M("[EventBus] "); class $ { constructor(e = !1) { h(this, "eventListenerMap", {}); e && i.disable(); } getEventListenerMap() { return a({}, this.eventListenerMap); } on(e, n, r = !1) { this.eventListenerMap[e] || (this.eventListenerMap[e] = []), r ? this.eventListenerMap[e].push({ fn: n, once: !0 }) : this.eventListenerMap[e].push(n), i.log(`add event ${e} listener ${r ? ", call once" : ""}`); } once(e, n) { this.on(e, n, !0); } off(e, n) { if (this.eventListenerMap[e]) { const r = this.eventListenerMap[e].findIndex((t) => { if (typeof t == "function" && n === t) return !0; if (t = t, t.fn === n) return !0; }); r < 0 ? i.log(`event ${e} listener ${n.name} is not found`) : (this.eventListenerMap[e].splice(r, 1), i.log(`remove event ${e} listener`)); } else i.log(`event ${e} listeners is empty`); } emit(e, n) { if (!this.eventListenerMap[e]) { i.log(`event ${e} listeners is empty`); return; } const r = []; for (let t = 0; t < this.eventListenerMap[e].length; t++) { const f = this.eventListenerMap[e][t]; typeof f == "function" ? f(n) : r.push(f); } r.forEach((t) => { t && (t.fn(n), this.off(e, t.fn)); }), i.log(`event ${e} is fired, has ${this.eventListenerMap[e].length} listeners`); } removeAllListeners() { this.eventListenerMap = {}; } } export { $ as default };