main-event
Version:
Typed event emitters
5 lines (4 loc) • 1.45 kB
JavaScript
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.MainEvent = factory()}(typeof self !== 'undefined' ? self : this, function () {
;var MainEvent=(()=>{var i=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var o=(r,t)=>{for(var e in t)i(r,e,{get:t[e],enumerable:!0})},v=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of c(t))!f.call(r,s)&&s!==e&&i(r,s,{get:()=>t[s],enumerable:!(n=h(t,s))||n.enumerable});return r};var p=r=>v(i({},"__esModule",{value:!0}),r);var E={};o(E,{TypedEventEmitter:()=>l,setMaxListeners:()=>u});function u(){}var l=class extends EventTarget{#t=new Map;constructor(){super()}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,n){super.addEventListener(t,e,n);let s=this.#t.get(t);s==null&&(s=[],this.#t.set(t,s)),s.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let s=this.#t.get(t);s!=null&&(s=s.filter(({callback:a})=>a!==e),this.#t.set(t,s))}dispatchEvent(t){let e=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:s})=>!s),this.#t.set(t.type,n)),e}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};return p(E);})();
return MainEvent}));
//# sourceMappingURL=index.min.js.map