UNPKG

iso-web

Version:

Isomorphic web apis utilities for fetch, event target, signals, crypto and doh.

60 lines 2.9 kB
/** * @import {ValueIsEvent, ITypedEventTarget, TypedEventListenerOrEventListenerObject} from './types.js' */ /** * @template {ValueIsEvent<M>} M * @implements {ITypedEventTarget<M>} */ export class TypedEventTarget<M extends ValueIsEvent<M>> extends EventTarget implements ITypedEventTarget { constructor(); /** * Dispatches a synthetic event to target and returns true if either * event's cancelable attribute value is false or its preventDefault() method * was not invoked, and false otherwise. * * @template {keyof M} T * @param {T} _type * @param {M[T]} event * @returns {boolean} */ dispatchTypedEvent<T extends keyof M>(_type: T, event: M[T]): boolean; emit<T extends keyof M>(...args: M[T]["detail"] extends import("iso-base/types").IsAny<M[T]["detail"]> ? [type: T, detail?: unknown] : [type: T, detail: M[T]["detail"]]): boolean; /** * @inheritdoc {ITypedEventTarget<M>['addEventListener']} * @template {keyof M & string} T * @param {T} type * @param {TypedEventListenerOrEventListenerObject<M, T> | null} callback * @param {boolean | AddEventListenerOptions} [options] */ addEventListener<T extends keyof M & string>(type: T, callback: TypedEventListenerOrEventListenerObject<M, T> | null, options?: boolean | AddEventListenerOptions): void; /** * Alias for {@link TypedEventTarget.addEventListener} * * @template {keyof M & string} T * @param {T} type * @param {TypedEventListenerOrEventListenerObject<M, T> | null} callback * @param {boolean | AddEventListenerOptions} [options] */ on<T extends keyof M & string>(type: T, callback: TypedEventListenerOrEventListenerObject<M, T> | null, options?: boolean | AddEventListenerOptions): void; /** * @inheritdoc {ITypedEventTarget<M>['removeEventListener']} * @template {keyof M & string} T * @param {T} type * @param {TypedEventListenerOrEventListenerObject<M, T> | null} callback * @param {boolean | EventListenerOptions} [options] */ removeEventListener<T extends keyof M & string>(type: T, callback: TypedEventListenerOrEventListenerObject<M, T> | null, options?: boolean | EventListenerOptions): void; /** * Alias for {@link TypedEventTarget.removeEventListener} * * @template {keyof M & string} T * @param {T} type * @param {TypedEventListenerOrEventListenerObject<M, T> | null} callback * @param {boolean | EventListenerOptions} [options] */ off<T extends keyof M & string>(type: T, callback: TypedEventListenerOrEventListenerObject<M, T> | null, options?: boolean | EventListenerOptions): void; } import type { ValueIsEvent } from './types.js'; import type { ITypedEventTarget } from './types.js'; import type { TypedEventListenerOrEventListenerObject } from './types.js'; //# sourceMappingURL=index.d.ts.map