function abortController()

in packages/sdk/src/fetch-util.ts [307:320]


function abortController(...follow: AbortSignal[]): [signal: AbortSignal, abort: (reason: unknown) => void] {
  const controller = new AbortController();

  function listener(this: AbortSignal) {
    controller.abort(this.reason);
  }

  for (const signal of follow) {
    // request should always have signal, but the cross-fetch polyfill used in tests doesn't comply, hence this check
    if (!signal) continue;
    signal.addEventListener('abort', listener);
  }
  return [controller.signal, controller.abort.bind(controller)];
}