UNPKG

libmodpm

Version:

Modrinth package manager library

78 lines 3.73 kB
/** * 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==