iso-web
Version:
Isomorphic web apis utilities for fetch, event target, signals, crypto and doh.
60 lines • 2.9 kB
TypeScript
/**
* @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