UNPKG

extendable-media-recorder

Version:

An extendable drop-in replacement for the native MediaRecorder.

28 lines 1.4 kB
export const createEventTargetConstructor = (createEventTarget, wrapEventListener) => { return class EventTarget { constructor(nativeEventTarget = null) { this._listeners = new WeakMap(); this._nativeEventTarget = nativeEventTarget === null ? createEventTarget() : nativeEventTarget; } addEventListener(type, listener, options) { if (listener !== null) { let wrappedEventListener = this._listeners.get(listener); if (wrappedEventListener === undefined) { wrappedEventListener = wrapEventListener(this, listener); if (typeof listener === 'function') { this._listeners.set(listener, wrappedEventListener); } } this._nativeEventTarget.addEventListener(type, wrappedEventListener, options); } } dispatchEvent(event) { return this._nativeEventTarget.dispatchEvent(event); } removeEventListener(type, listener, options) { const wrappedEventListener = listener === null ? undefined : this._listeners.get(listener); this._nativeEventTarget.removeEventListener(type, wrappedEventListener === undefined ? null : wrappedEventListener, options); } }; }; //# sourceMappingURL=event-target-constructor.js.map