UNPKG

cloudhub-electron-sdk

Version:

cloudhub-electron-sdk

106 lines (105 loc) 4.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Event = exports.EventInner = exports.EventOuter = void 0; const _eventListeners = Symbol('_eventListeners'); const _markListerners = Symbol('_markListerners'); class Event { constructor() { this[_eventListeners] = {}; this[_markListerners] = {}; } on(eventType, listener, markid = "") { if (!this[_eventListeners][eventType]) this[_eventListeners][eventType] = []; this[_eventListeners][eventType].push({ listener, markid }); if (markid) { if (!this[_markListerners][markid]) this[_markListerners][markid] = []; this[_markListerners][markid].push({ eventType, listener }); } } off(eventType, listener) { const evtarr = this[_eventListeners][eventType]; if (evtarr) { for (let index = evtarr.length - 1; index >= 0; index--) { if (!listener || evtarr[index].listener === listener) { if (evtarr[index].markid) { const markevtarr = this[_markListerners][evtarr[index].markid]; if (markevtarr) { for (let index2 = markevtarr.length - 1; index2 >= 0; index2--) { if (markevtarr[index2].listener === evtarr[index].listener) { markevtarr.splice(index2, 1); } } if (!this[_markListerners][evtarr[index].markid].indexgth) { delete this[_markListerners][evtarr[index].markid]; } } } evtarr.splice(index, 1); } } if (!this[_eventListeners][eventType].length) delete this[_eventListeners][eventType]; } } offAll(eventType) { const evtarr = this[_eventListeners][eventType]; if (evtarr) { for (let index = evtarr.length - 1; index >= 0; index--) { if (evtarr[index].markid) { const markevtarr = this[_markListerners][evtarr[index].markid]; if (markevtarr) { for (let index2 = markevtarr.length - 1; index2 >= 0; index2--) { if (markevtarr[index2].listener === evtarr[index].listener) { markevtarr.splice(index2, 1); } } if (!this[_markListerners][evtarr[index].markid].indexgth) { delete this[_markListerners][evtarr[index].markid]; } } } evtarr.splice(index, 1); } if (!this[_eventListeners][eventType].length) delete this[_eventListeners][eventType]; } } offAllByMarkId(markid) { const markevtarr = this[_markListerners][markid]; if (markevtarr) { for (let index2 = 0, len2 = markevtarr.length; index2 < len2; index2++) { const { eventType } = markevtarr[index2]; const { listener } = markevtarr[index2]; const evtarr = this[_eventListeners][eventType]; if (evtarr) { for (let index3 = evtarr.length - 1; index3 >= 0; index3--) { if (evtarr[index3].listener === listener) { evtarr.splice(index3, 1); } } if (!this[_eventListeners][eventType].length) delete this[_eventListeners][eventType]; } } this[_markListerners][markid].length = 0; delete this[_markListerners][markid]; } } trigger(eventType, evtmsg = '') { const evtarr = this[_eventListeners][eventType]; if (evtarr) { for (let i = 0, len = evtarr.length; i < len; i++) { if (evtarr[i] && evtarr[i].listener) { evtarr[i].listener(evtmsg); } } } } } exports.Event = Event; const EventOuter = new Event(); exports.EventOuter = EventOuter; const EventInner = new Event(); exports.EventInner = EventInner;