@xmpp/events
Version:
XMPP events utilities.
22 lines (18 loc) • 504 B
JavaScript
const map = new WeakMap();
export default function onoff(target) {
let m = map.get(target);
if (!m) {
const on = (target.addEventListener ?? target.addListener).bind(target);
const off = (target.removeEventListener ?? target.removeListener).bind(
target,
);
const once = (
target.once ??
((event, handler) =>
target.addEventListener(event, handler, { once: true }))
).bind(target);
m = { on, off, once };
map.set(target, m);
}
return m;
}