libmodpm
Version:
Modrinth package manager library
78 lines • 3.73 kB
JavaScript
/**
* Represents an event target with statically-known event types.
*
* @template E Event types map.
*/
export class TypedEventTarget {
/**
* Underlying event target.
*/
target = new EventTarget();
/**
* Sets up an event listener.
*
* @param type Case-sensitive event type.
* @param listener Event listener.
* @param options Listener options.
*/
addEventListener(type, listener, options) {
return this.target.addEventListener(type, listener, options);
}
/**
* Sets up an event listener.
*
* @param type Case-sensitive event type.
* @param listener Event listener.
* @param options Listener options.
*/
on(type, listener, options) {
return this.addEventListener(type, listener, options);
}
/**
* Sets up an event listener that will be removed after the first invocation.
*
* @param type Case-sensitive event type.
* @param listener Event listener.
* @param options Listener options.
*/
once(type, listener, options) {
return this.addEventListener(type, listener, { ...options, once: true });
}
/**
* Removes an event listener.
*
* @param type Case-sensitive event type.
* @param listener Event listener.
* @param options Listener options.
*/
removeEventListener(type, listener, options) {
return this.target.removeEventListener(type.toString(), listener, options);
}
/**
* Removes an event listener.
*
* @param type Case-sensitive event type.
* @param listener Event listener.
* @param options Listener options.
*/
off(type, listener, options) {
return this.removeEventListener(type, listener, options);
}
/**
* Dispatches an event.
*
* @param event Event to dispatch.
*/
dispatchEvent(event) {
return this.target.dispatchEvent(event);
}
/**
* Dispatches an event.
*
* @param event Event to dispatch.
*/
emit(event) {
return this.dispatchEvent(event);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZWRFdmVudFRhcmdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldmVudHMvVHlwZWRFdmVudFRhcmdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQUN6Qjs7T0FFRztJQUNjLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBRTVDOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixDQUNuQixJQUFPLEVBQ1AsUUFBNkIsRUFDN0IsT0FBaUM7UUFFakMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUE4QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxFQUFFLENBQ0wsSUFBTyxFQUNQLFFBQTZCLEVBQzdCLE9BQWlDO1FBRWpDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLElBQUksQ0FDUCxJQUFPLEVBQ1AsUUFBNkIsRUFDN0IsT0FBaUM7UUFFakMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxtQkFBbUIsQ0FDdEIsSUFBTyxFQUNQLFFBQTZCLEVBQzdCLE9BQXdDO1FBRXhDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBOEMsRUFDbEcsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEdBQUcsQ0FDTixJQUFPLEVBQ1AsUUFBNkIsRUFDN0IsT0FBd0M7UUFFeEMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGFBQWEsQ0FBQyxLQUFpQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLEtBQWlCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0oifQ==