@miyauci/get-event-listeners
Version:
Ponyfill for getEventListeners
41 lines (40 loc) • 2.08 kB
TypeScript
import type { AddEventListener, ComparableEventListenerLike, DetailEventListener, EventListenerRegistry, EventListeners, RemoveEventListener } from "./types.js";
/** Register {@linkcode listener} if the {@linkcode registry} has not {@linkcode listener}.
* If {@linkcode listener} `signal` is passed, add algorithm.
*
* @see https://dom.spec.whatwg.org/#add-an-event-listener
*/
export declare function addAnEventListener(target: Readonly<EventTarget>, listener: Readonly<DetailEventListener>, registry: EventListenerRegistry): void;
/** Remove {@linkcode listener} from {@linkcode registry}.
* @see https://dom.spec.whatwg.org/#remove-an-event-listener
*/
export declare function removeAnEventListener(target: Readonly<EventTarget>, listener: Readonly<ComparableEventListenerLike>, registry: EventListenerRegistry): void;
export declare function getEventListenersWithContext(context: {
target: EventTarget;
registry: EventListenerRegistry;
}): EventListeners;
export declare function createAddEventListener(context: {
addEventListener: AddEventListener;
registry: EventListenerRegistry;
}): AddEventListener;
export declare function createRemoveEventListener(context: {
removeEventListener: RemoveEventListener;
registry: EventListenerRegistry;
}): RemoveEventListener;
export declare function createGetEventListener(registry: EventListenerRegistry): GetEventListeners;
/** Setup event listener monitoring.
* Performs a side effect and changes the prototype of `EventTarget`.
*/
export declare function updateEventListener(): GetEventListeners;
export interface EventListenerContext {
addEventListener: AddEventListener;
removeEventListener: RemoveEventListener;
getEventListeners: GetEventListeners;
}
export interface GetEventListeners {
(target: EventTarget): EventListeners;
}
export interface ContextOptions extends Partial<Pick<EventListenerContext, "addEventListener" | "removeEventListener">> {
registry?: EventListenerRegistry;
}
export declare function createContext(options?: ContextOptions): EventListenerContext;