2025-11-05 17:04:23 -03:00

22 lines
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;
}