googlevideo
Version:
A set of utilities for working with Google Video APIs.
51 lines (50 loc) • 2.06 kB
JavaScript
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _EventEmitterLike_legacy_listeners;
import { CustomEvent } from './index.js';
export class EventEmitterLike extends EventTarget {
constructor() {
super();
_EventEmitterLike_legacy_listeners.set(this, new Map());
}
emit(type, ...args) {
const event = new CustomEvent(type, { detail: args });
this.dispatchEvent(event);
}
on(type, listener) {
const wrapper = (ev) => {
if (ev instanceof CustomEvent) {
listener(...ev.detail);
}
else {
listener(ev);
}
};
__classPrivateFieldGet(this, _EventEmitterLike_legacy_listeners, "f").set(listener, wrapper);
this.addEventListener(type, wrapper);
}
once(type, listener) {
const wrapper = (ev) => {
if (ev instanceof CustomEvent) {
listener(...ev.detail);
}
else {
listener(ev);
}
this.off(type, listener);
};
__classPrivateFieldGet(this, _EventEmitterLike_legacy_listeners, "f").set(listener, wrapper);
this.addEventListener(type, wrapper);
}
off(type, listener) {
const wrapper = __classPrivateFieldGet(this, _EventEmitterLike_legacy_listeners, "f").get(listener);
if (wrapper) {
this.removeEventListener(type, wrapper);
__classPrivateFieldGet(this, _EventEmitterLike_legacy_listeners, "f").delete(listener);
}
}
}
_EventEmitterLike_legacy_listeners = new WeakMap();