UNPKG

pico-emitter

Version:

A very small event emitter using EventTarget and CustomEvent

26 lines 605 B
export default class PicoEmitter { constructor() { try { this._t = new EventTarget(); } catch (e) { // EventTarget not supported, use DOM as EventTarget this._t = document.createDocumentFragment(); } } on(name, callback, options) { callback._p = (e) => callback.apply(null, e._p); this._t.addEventListener(name, callback._p, options); } off(name, callback) { this._t.removeEventListener(name, callback._p); } emit(name, ...args) { const e = new Event(name); e._p = args; this._t.dispatchEvent(e); } once(name, callback) { this.on(name, callback, {once: true}); } }