UNPKG

abort-utils

Version:

Utility functions to use and combine `AbortSignal` and `AbortController` with Promises

15 lines (14 loc) 535 B
/** Like AbortSignal.any(), except it accepts `undefined` as well, so you can pass in optional signals without further logic */ export function mergeSignals(...signals) { const adjusted = signals .filter(Boolean) .map(signal => signal instanceof AbortSignal ? signal // @ts-expect-error idk what you're talking about, signal is not undefined : signal.signal); if (adjusted.length === 1) { // Return as is return adjusted[0]; } return AbortSignal.any(adjusted); }