UNPKG

scryfall-sdk

Version:

A Node.js SDK for https://scryfall.com/docs/api written in Typescript.

98 lines (97 loc) 3.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const EMPTY = []; class EventEmitter { constructor() { this._maxListeners = 10; this._listeners = {}; } addListener(eventName, listener) { var _a; var _b; const listeners = (_a = (_b = this._listeners)[eventName]) !== null && _a !== void 0 ? _a : (_b[eventName] = []); listeners.push(listener); if (listeners.length > this._maxListeners) console.warn(`MaxListenersExceededWarning: Possible EventEmitter memory leak detected. ${listeners.length} ${eventName.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`); return this; } prependListener(eventName, listener) { var _a; var _b; const listeners = (_a = (_b = this._listeners)[eventName]) !== null && _a !== void 0 ? _a : (_b[eventName] = []); listeners.unshift(listener); if (listeners.length > this._maxListeners) console.warn(`MaxListenersExceededWarning: Possible EventEmitter memory leak detected. ${listeners.length} ${eventName.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`); return this; } removeListener(eventName, listener) { const listeners = this._listeners[eventName]; if (listeners) { const index = listeners.indexOf(listener); if (index >= 0) { if (listeners.length === 1) delete this._listeners[eventName]; else listeners.splice(index, 1); } } return this; } on(eventName, listener) { this.addListener(eventName, listener); return this; } once(eventName, listener) { const realListener = (...args) => { this.removeListener(eventName, realListener); listener(...args); }; this.addListener(eventName, realListener); return this; } prependOnceListener(eventName, listener) { const realListener = (...args) => { this.removeListener(eventName, realListener); listener(...args); }; this.prependListener(eventName, realListener); return this; } off(eventName, listener) { this.removeListener(eventName, listener); return this; } removeAllListeners(event) { if (event !== undefined) delete this._listeners[event]; return this; } emit(eventName, ...args) { if (this._listeners[eventName]) for (const listener of this._listeners[eventName]) listener(...args); return true; } setMaxListeners(n) { this._maxListeners = n; return this; } getMaxListeners() { return this._maxListeners; } listeners(eventName) { const listeners = this._listeners[eventName]; return listeners ? [...listeners] : EMPTY; } rawListeners(eventName) { throw new Error("The rawListeners method is not available using this polyfill"); } listenerCount(eventName) { var _a, _b; return (_b = (_a = this._listeners[eventName]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0; } eventNames() { return Object.keys(this._listeners); } } exports.default = EventEmitter;