UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

20 lines (19 loc) 1.52 kB
import { IOnAborted } from '../for-promise/wrap-promise-with-abort-signal'; import { IGenericFunction } from '../../types/generic-function.type'; export declare type IWrapFunctionWithAbortSignalReturnedFunctionReturn<GFunction extends IGenericFunction, GOnAborted extends IOnAborted> = ReturnType<GFunction> | ReturnType<GOnAborted>; export interface IWrapFunctionWithAbortSignalReturnedFunction<GFunction extends IGenericFunction, GOnAborted extends IOnAborted> { (...args: Parameters<GFunction>): IWrapFunctionWithAbortSignalReturnedFunctionReturn<GFunction, GOnAborted>; } /** * Wraps a function with an AbortSignal: * - returns a function with the same arguments and the same return type (+ OnAborted type) * - when called, if the signal is aborted, calls and returns 'onAborted', else, calls and returns 'callback' */ export declare function wrapFunctionWithAbortSignal<// generics GFunction extends IGenericFunction, GOnAborted extends IOnAborted>(callback: GFunction, signal: AbortSignal, onAborted: GOnAborted): IWrapFunctionWithAbortSignalReturnedFunction<GFunction, GOnAborted>; /** * Wraps a function with an AbortSignal: * - when called, throws if the signal is aborted */ export declare function wrapFunctionWithAbortSignalAndThrow<GFunction extends IGenericFunction>(callback: GFunction, signal: AbortSignal): GFunction; export declare function wrapFunctionWithOptionalAbortSignalAndThrow<GFunction extends IGenericFunction>(callback: GFunction, signal: AbortSignal | null | undefined): GFunction;