UNPKG

@graphql-hive/gateway-abort-signal-any

Version:
23 lines (20 loc) 528 B
'use strict'; function abortSignalAny(iterable) { const signals = Array.from(iterable); const aborted = signals.find((s) => s.aborted); if (aborted) { return aborted; } const ctrl = new AbortController(); function abort(event) { ctrl.abort(event.target.reason); for (const signal of signals) { signal.removeEventListener("abort", abort); } } for (const signal of signals) { signal.addEventListener("abort", abort); } return ctrl.signal; } exports.abortSignalAny = abortSignalAny;