Initial Commit
This commit is contained in:
81
node_modules/strict-event-emitter/lib/index.d.ts
generated
vendored
Normal file
81
node_modules/strict-event-emitter/lib/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
declare type EventMap = {
|
||||
[eventName: string]: Array<unknown>;
|
||||
};
|
||||
declare type InternalEventNames = 'newListener' | 'removeListener';
|
||||
declare type InternalListener<Events extends EventMap> = Listener<[
|
||||
eventName: keyof Events,
|
||||
listener: Listener<Array<unknown>>
|
||||
]>;
|
||||
declare type Listener<Data extends Array<unknown>> = (...data: Data) => void;
|
||||
/**
|
||||
* Node.js-compatible implementation of `EventEmitter`.
|
||||
*
|
||||
* @example
|
||||
* const emitter = new Emitter<{ hello: [string] }>()
|
||||
* emitter.on('hello', (name) => console.log(name))
|
||||
* emitter.emit('hello', 'John')
|
||||
*/
|
||||
declare class Emitter<Events extends EventMap> {
|
||||
private events;
|
||||
private maxListeners;
|
||||
private hasWarnedAboutPotentialMemoryLeak;
|
||||
static defaultMaxListeners: number;
|
||||
static listenerCount<Events extends EventMap>(emitter: Emitter<EventMap>, eventName: keyof Events): number;
|
||||
constructor();
|
||||
private _emitInternalEvent;
|
||||
private _getListeners;
|
||||
private _removeListener;
|
||||
private _wrapOnceListener;
|
||||
setMaxListeners(maxListeners: number): this;
|
||||
/**
|
||||
* Returns the current max listener value for the `Emitter` which is
|
||||
* either set by `emitter.setMaxListeners(n)` or defaults to
|
||||
* `Emitter.defaultMaxListeners`.
|
||||
*/
|
||||
getMaxListeners(): number;
|
||||
/**
|
||||
* Returns an array listing the events for which the emitter has registered listeners.
|
||||
* The values in the array will be strings or Symbols.
|
||||
*/
|
||||
eventNames(): Array<keyof Events>;
|
||||
/**
|
||||
* Synchronously calls each of the listeners registered for the event named `eventName`,
|
||||
* in the order they were registered, passing the supplied arguments to each.
|
||||
* Returns `true` if the event has listeners, `false` otherwise.
|
||||
*
|
||||
* @example
|
||||
* const emitter = new Emitter<{ hello: [string] }>()
|
||||
* emitter.emit('hello', 'John')
|
||||
*/
|
||||
emit<EventName extends keyof Events>(eventName: EventName, ...data: Events[EventName]): boolean;
|
||||
addListener(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
||||
addListener<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
||||
on(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
||||
on<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
||||
once(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
||||
once<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
||||
prependListener(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
||||
prependListener<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
||||
prependOnceListener(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
||||
prependOnceListener<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
||||
removeListener(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
||||
removeListener<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
||||
off(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
||||
off<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
||||
removeAllListeners(eventName?: InternalEventNames): this;
|
||||
removeAllListeners<EventName extends keyof Events>(eventName?: EventName): this;
|
||||
listeners(eventName: InternalEventNames): Array<Listener<any>>;
|
||||
listeners<EventName extends keyof Events>(eventName: EventName): Array<Listener<Events[EventName]>>;
|
||||
listenerCount(eventName: InternalEventNames): number;
|
||||
listenerCount<EventName extends keyof Events>(eventName: EventName): number;
|
||||
rawListeners<EventName extends keyof Events>(eventName: EventName): Array<Listener<Events[EventName]>>;
|
||||
}
|
||||
|
||||
declare class MemoryLeakError extends Error {
|
||||
readonly emitter: Emitter<any>;
|
||||
readonly type: string | number | symbol;
|
||||
readonly count: number;
|
||||
constructor(emitter: Emitter<any>, type: string | number | symbol, count: number);
|
||||
}
|
||||
|
||||
export { Emitter, EventMap, InternalEventNames, InternalListener, Listener, MemoryLeakError };
|
||||
198
node_modules/strict-event-emitter/lib/index.js
generated
vendored
Normal file
198
node_modules/strict-event-emitter/lib/index.js
generated
vendored
Normal file
@@ -0,0 +1,198 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
|
||||
// src/index.ts
|
||||
var src_exports = {};
|
||||
__export(src_exports, {
|
||||
Emitter: () => Emitter,
|
||||
MemoryLeakError: () => MemoryLeakError
|
||||
});
|
||||
module.exports = __toCommonJS(src_exports);
|
||||
|
||||
// src/MemoryLeakError.ts
|
||||
var MemoryLeakError = class extends Error {
|
||||
constructor(emitter, type, count) {
|
||||
super(
|
||||
`Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`
|
||||
);
|
||||
this.emitter = emitter;
|
||||
this.type = type;
|
||||
this.count = count;
|
||||
this.name = "MaxListenersExceededWarning";
|
||||
}
|
||||
};
|
||||
|
||||
// src/Emitter.ts
|
||||
var _Emitter = class {
|
||||
static listenerCount(emitter, eventName) {
|
||||
return emitter.listenerCount(eventName);
|
||||
}
|
||||
constructor() {
|
||||
this.events = /* @__PURE__ */ new Map();
|
||||
this.maxListeners = _Emitter.defaultMaxListeners;
|
||||
this.hasWarnedAboutPotentialMemoryLeak = false;
|
||||
}
|
||||
_emitInternalEvent(internalEventName, eventName, listener) {
|
||||
this.emit(
|
||||
internalEventName,
|
||||
...[eventName, listener]
|
||||
);
|
||||
}
|
||||
_getListeners(eventName) {
|
||||
return Array.prototype.concat.apply([], this.events.get(eventName)) || [];
|
||||
}
|
||||
_removeListener(listeners, listener) {
|
||||
const index = listeners.indexOf(listener);
|
||||
if (index > -1) {
|
||||
listeners.splice(index, 1);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
_wrapOnceListener(eventName, listener) {
|
||||
const onceListener = (...data) => {
|
||||
this.removeListener(eventName, onceListener);
|
||||
return listener.apply(this, data);
|
||||
};
|
||||
Object.defineProperty(onceListener, "name", { value: listener.name });
|
||||
return onceListener;
|
||||
}
|
||||
setMaxListeners(maxListeners) {
|
||||
this.maxListeners = maxListeners;
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Returns the current max listener value for the `Emitter` which is
|
||||
* either set by `emitter.setMaxListeners(n)` or defaults to
|
||||
* `Emitter.defaultMaxListeners`.
|
||||
*/
|
||||
getMaxListeners() {
|
||||
return this.maxListeners;
|
||||
}
|
||||
/**
|
||||
* Returns an array listing the events for which the emitter has registered listeners.
|
||||
* The values in the array will be strings or Symbols.
|
||||
*/
|
||||
eventNames() {
|
||||
return Array.from(this.events.keys());
|
||||
}
|
||||
/**
|
||||
* Synchronously calls each of the listeners registered for the event named `eventName`,
|
||||
* in the order they were registered, passing the supplied arguments to each.
|
||||
* Returns `true` if the event has listeners, `false` otherwise.
|
||||
*
|
||||
* @example
|
||||
* const emitter = new Emitter<{ hello: [string] }>()
|
||||
* emitter.emit('hello', 'John')
|
||||
*/
|
||||
emit(eventName, ...data) {
|
||||
const listeners = this._getListeners(eventName);
|
||||
listeners.forEach((listener) => {
|
||||
listener.apply(this, data);
|
||||
});
|
||||
return listeners.length > 0;
|
||||
}
|
||||
addListener(eventName, listener) {
|
||||
this._emitInternalEvent("newListener", eventName, listener);
|
||||
const nextListeners = this._getListeners(eventName).concat(listener);
|
||||
this.events.set(eventName, nextListeners);
|
||||
if (this.maxListeners > 0 && this.listenerCount(eventName) > this.maxListeners && !this.hasWarnedAboutPotentialMemoryLeak) {
|
||||
this.hasWarnedAboutPotentialMemoryLeak = true;
|
||||
const memoryLeakWarning = new MemoryLeakError(
|
||||
this,
|
||||
eventName,
|
||||
this.listenerCount(eventName)
|
||||
);
|
||||
console.warn(memoryLeakWarning);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
on(eventName, listener) {
|
||||
return this.addListener(eventName, listener);
|
||||
}
|
||||
once(eventName, listener) {
|
||||
return this.addListener(
|
||||
eventName,
|
||||
this._wrapOnceListener(eventName, listener)
|
||||
);
|
||||
}
|
||||
prependListener(eventName, listener) {
|
||||
const listeners = this._getListeners(eventName);
|
||||
if (listeners.length > 0) {
|
||||
const nextListeners = [listener].concat(listeners);
|
||||
this.events.set(eventName, nextListeners);
|
||||
} else {
|
||||
this.events.set(eventName, listeners.concat(listener));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
prependOnceListener(eventName, listener) {
|
||||
return this.prependListener(
|
||||
eventName,
|
||||
this._wrapOnceListener(eventName, listener)
|
||||
);
|
||||
}
|
||||
removeListener(eventName, listener) {
|
||||
const listeners = this._getListeners(eventName);
|
||||
if (listeners.length > 0) {
|
||||
this._removeListener(listeners, listener);
|
||||
this.events.set(eventName, listeners);
|
||||
this._emitInternalEvent("removeListener", eventName, listener);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Alias for `emitter.removeListener()`.
|
||||
*
|
||||
* @example
|
||||
* emitter.off('hello', listener)
|
||||
*/
|
||||
off(eventName, listener) {
|
||||
return this.removeListener(eventName, listener);
|
||||
}
|
||||
removeAllListeners(eventName) {
|
||||
if (eventName) {
|
||||
this.events.delete(eventName);
|
||||
} else {
|
||||
this.events.clear();
|
||||
}
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Returns a copy of the array of listeners for the event named `eventName`.
|
||||
*/
|
||||
listeners(eventName) {
|
||||
return Array.from(this._getListeners(eventName));
|
||||
}
|
||||
/**
|
||||
* Returns the number of listeners listening to the event named `eventName`.
|
||||
*/
|
||||
listenerCount(eventName) {
|
||||
return this._getListeners(eventName).length;
|
||||
}
|
||||
rawListeners(eventName) {
|
||||
return this.listeners(eventName);
|
||||
}
|
||||
};
|
||||
var Emitter = _Emitter;
|
||||
Emitter.defaultMaxListeners = 10;
|
||||
// Annotate the CommonJS export names for ESM import in node:
|
||||
0 && (module.exports = {
|
||||
Emitter,
|
||||
MemoryLeakError
|
||||
});
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/strict-event-emitter/lib/index.js.map
generated
vendored
Normal file
1
node_modules/strict-event-emitter/lib/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
171
node_modules/strict-event-emitter/lib/index.mjs
generated
vendored
Normal file
171
node_modules/strict-event-emitter/lib/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,171 @@
|
||||
// src/MemoryLeakError.ts
|
||||
var MemoryLeakError = class extends Error {
|
||||
constructor(emitter, type, count) {
|
||||
super(
|
||||
`Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`
|
||||
);
|
||||
this.emitter = emitter;
|
||||
this.type = type;
|
||||
this.count = count;
|
||||
this.name = "MaxListenersExceededWarning";
|
||||
}
|
||||
};
|
||||
|
||||
// src/Emitter.ts
|
||||
var _Emitter = class {
|
||||
static listenerCount(emitter, eventName) {
|
||||
return emitter.listenerCount(eventName);
|
||||
}
|
||||
constructor() {
|
||||
this.events = /* @__PURE__ */ new Map();
|
||||
this.maxListeners = _Emitter.defaultMaxListeners;
|
||||
this.hasWarnedAboutPotentialMemoryLeak = false;
|
||||
}
|
||||
_emitInternalEvent(internalEventName, eventName, listener) {
|
||||
this.emit(
|
||||
internalEventName,
|
||||
...[eventName, listener]
|
||||
);
|
||||
}
|
||||
_getListeners(eventName) {
|
||||
return Array.prototype.concat.apply([], this.events.get(eventName)) || [];
|
||||
}
|
||||
_removeListener(listeners, listener) {
|
||||
const index = listeners.indexOf(listener);
|
||||
if (index > -1) {
|
||||
listeners.splice(index, 1);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
_wrapOnceListener(eventName, listener) {
|
||||
const onceListener = (...data) => {
|
||||
this.removeListener(eventName, onceListener);
|
||||
return listener.apply(this, data);
|
||||
};
|
||||
Object.defineProperty(onceListener, "name", { value: listener.name });
|
||||
return onceListener;
|
||||
}
|
||||
setMaxListeners(maxListeners) {
|
||||
this.maxListeners = maxListeners;
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Returns the current max listener value for the `Emitter` which is
|
||||
* either set by `emitter.setMaxListeners(n)` or defaults to
|
||||
* `Emitter.defaultMaxListeners`.
|
||||
*/
|
||||
getMaxListeners() {
|
||||
return this.maxListeners;
|
||||
}
|
||||
/**
|
||||
* Returns an array listing the events for which the emitter has registered listeners.
|
||||
* The values in the array will be strings or Symbols.
|
||||
*/
|
||||
eventNames() {
|
||||
return Array.from(this.events.keys());
|
||||
}
|
||||
/**
|
||||
* Synchronously calls each of the listeners registered for the event named `eventName`,
|
||||
* in the order they were registered, passing the supplied arguments to each.
|
||||
* Returns `true` if the event has listeners, `false` otherwise.
|
||||
*
|
||||
* @example
|
||||
* const emitter = new Emitter<{ hello: [string] }>()
|
||||
* emitter.emit('hello', 'John')
|
||||
*/
|
||||
emit(eventName, ...data) {
|
||||
const listeners = this._getListeners(eventName);
|
||||
listeners.forEach((listener) => {
|
||||
listener.apply(this, data);
|
||||
});
|
||||
return listeners.length > 0;
|
||||
}
|
||||
addListener(eventName, listener) {
|
||||
this._emitInternalEvent("newListener", eventName, listener);
|
||||
const nextListeners = this._getListeners(eventName).concat(listener);
|
||||
this.events.set(eventName, nextListeners);
|
||||
if (this.maxListeners > 0 && this.listenerCount(eventName) > this.maxListeners && !this.hasWarnedAboutPotentialMemoryLeak) {
|
||||
this.hasWarnedAboutPotentialMemoryLeak = true;
|
||||
const memoryLeakWarning = new MemoryLeakError(
|
||||
this,
|
||||
eventName,
|
||||
this.listenerCount(eventName)
|
||||
);
|
||||
console.warn(memoryLeakWarning);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
on(eventName, listener) {
|
||||
return this.addListener(eventName, listener);
|
||||
}
|
||||
once(eventName, listener) {
|
||||
return this.addListener(
|
||||
eventName,
|
||||
this._wrapOnceListener(eventName, listener)
|
||||
);
|
||||
}
|
||||
prependListener(eventName, listener) {
|
||||
const listeners = this._getListeners(eventName);
|
||||
if (listeners.length > 0) {
|
||||
const nextListeners = [listener].concat(listeners);
|
||||
this.events.set(eventName, nextListeners);
|
||||
} else {
|
||||
this.events.set(eventName, listeners.concat(listener));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
prependOnceListener(eventName, listener) {
|
||||
return this.prependListener(
|
||||
eventName,
|
||||
this._wrapOnceListener(eventName, listener)
|
||||
);
|
||||
}
|
||||
removeListener(eventName, listener) {
|
||||
const listeners = this._getListeners(eventName);
|
||||
if (listeners.length > 0) {
|
||||
this._removeListener(listeners, listener);
|
||||
this.events.set(eventName, listeners);
|
||||
this._emitInternalEvent("removeListener", eventName, listener);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Alias for `emitter.removeListener()`.
|
||||
*
|
||||
* @example
|
||||
* emitter.off('hello', listener)
|
||||
*/
|
||||
off(eventName, listener) {
|
||||
return this.removeListener(eventName, listener);
|
||||
}
|
||||
removeAllListeners(eventName) {
|
||||
if (eventName) {
|
||||
this.events.delete(eventName);
|
||||
} else {
|
||||
this.events.clear();
|
||||
}
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Returns a copy of the array of listeners for the event named `eventName`.
|
||||
*/
|
||||
listeners(eventName) {
|
||||
return Array.from(this._getListeners(eventName));
|
||||
}
|
||||
/**
|
||||
* Returns the number of listeners listening to the event named `eventName`.
|
||||
*/
|
||||
listenerCount(eventName) {
|
||||
return this._getListeners(eventName).length;
|
||||
}
|
||||
rawListeners(eventName) {
|
||||
return this.listeners(eventName);
|
||||
}
|
||||
};
|
||||
var Emitter = _Emitter;
|
||||
Emitter.defaultMaxListeners = 10;
|
||||
export {
|
||||
Emitter,
|
||||
MemoryLeakError
|
||||
};
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
1
node_modules/strict-event-emitter/lib/index.mjs.map
generated
vendored
Normal file
1
node_modules/strict-event-emitter/lib/index.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user