"use strict"; function once(event_emitter, event_name, abort_signal = null) { return new Promise((resolve, reject) => { let options = { once: true }; if(abort_signal !== null) options.signal = abort_signal; let resolve_handler = function() { event_emitter.removeEventListener("error", reject); abort_signal.removeEventListener("abort", resolve_handler); resolve(...arguments); }; abort_signal.addEventListener("abort", resolve_handler); event_emitter.addEventListener("error", reject, options); event_emitter.addEventListener(event_name, resolve_handler, options); }); } export { once };