UNPKG

@thednp/event-listener

Version:

🚅 Modern event listener for efficient web applications based on subscribe-publish pattern.

3 lines (2 loc) • 777 B
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v="2.0.10",r={},a=s=>{const{type:e,currentTarget:n}=s;r[e].forEach((c,t)=>{n===t&&c.forEach((o,i)=>{i.apply(t,[s]),typeof o=="object"&&o.once&&f(t,e,i,o)})})},d=(s,e,n,c)=>{r[e]||(r[e]=new Map);const t=r[e];t.has(s)||t.set(s,new Map);const o=t.get(s),{size:i}=o;o.set(n,c),i||s.addEventListener(e,a,c)},f=(s,e,n,c)=>{const t=r[e],o=t&&t.get(s),i=o&&o.get(n),g=i!==void 0?i:c;o&&o.has(n)&&o.delete(n),t&&(!o||!o.size)&&t.delete(s),(!t||!t.size)&&delete r[e],(!o||!o.size)&&s.removeEventListener(e,a,g)},E=d,L=f;exports.addListener=d;exports.globalListener=a;exports.off=L;exports.on=E;exports.registry=r;exports.removeListener=f;exports.version=v; //# sourceMappingURL=event-listener.cjs.map