import { promiseWithResolvers } from "./promise.ts"; export function waitForEvents( target: EventTarget, eventTypes: T[], ): Promise { const { promise, resolve } = promiseWithResolvers(); const ac = new AbortController(); eventTypes.forEach((t) => target.addEventListener(t, () => resolve(t), { signal: ac.signal }), ); return promise.finally(() => ac.abort()); }