UNPKG

abortable-rx

Version:

Drop-in replacements for RxJS Observable methods and operators that work with AbortSignal

33 lines 2.16 kB
import { Observable, ObservableInput, OperatorFunction, Subscriber, TeardownLogic } from 'rxjs'; /** * Creates an Observable just like RxJS `create`, but exposes an AbortSignal in addition to the subscriber */ export declare const create: <T>(subscribe?: ((subscriber: Subscriber<T>, signal: AbortSignal) => TeardownLogic) | undefined) => Observable<T>; /** * Easiest way to wrap an abortable async function into a Promise. * The factory is called every time the Observable is subscribed to, and the AbortSignal is aborted on unsubscription. */ export declare const defer: <T>(factory: (signal: AbortSignal) => ObservableInput<T>) => Observable<T>; /** * Returns a Promise that resolves with the last emission of the given Observable, * rejects if the Observable errors or rejects with an `AbortError` when the AbortSignal is aborted. */ export declare const toPromise: <T>(observable: Observable<T>, signal?: AbortSignal | undefined) => Promise<T>; /** * Calls `next` for every emission and returns a Promise that resolves when the Observable completed, rejects if the * Observable errors or rejects with an `AbortError` when the AbortSignal is aborted. */ export declare const forEach: <T>(source: Observable<T>, next: (value: T) => void, signal?: AbortSignal | undefined) => Promise<void>; /** * Like RxJS `switchMap`, but passes an AbortSignal that is aborted when the source emits another element. */ export declare const switchMap: <T, R>(project: (value: T, index: number, abortSignal: AbortSignal) => ObservableInput<R>) => OperatorFunction<T, R>; /** * Like RxJS `concatMap`, but passes an AbortSignal that is aborted when the returned Observable is unsubscribed from. */ export declare const concatMap: <T, R>(project: (value: T, index: number, abortSignal: AbortSignal) => ObservableInput<R>) => OperatorFunction<T, R>; /** * Like RxJS `mergeMap`, but passes an AbortSignal that is aborted when the returned Observable is unsubscribed from. */ export declare const mergeMap: <T, R>(project: (value: T, index: number, abortSignal: AbortSignal) => ObservableInput<R>) => OperatorFunction<T, R>; //# sourceMappingURL=index.d.ts.map