race-cancellation
Version:
Utilities for using Promise.race([task, cancellation]) for async/await code.
21 lines (18 loc) • 682 B
text/typescript
import { AsyncFn, RaceCancelFn } from "./interfaces.js";
/**
* A no-op implemenation of a {@link RaceCancelFn} function.
*
* @remarks
* Allows an async function to add cancellation support in a backwards compatible way by
* adding optional param by providing this as a default.
*
* @param asyncFnOrPromise - an {@link AsyncFn} or `PromiseLike` that will be resolved.
* @public
*/
const noopRaceCancel: RaceCancelFn = <TResult>(
asyncFnOrPromise: AsyncFn<TResult> | PromiseLike<TResult>
): Promise<TResult> =>
typeof asyncFnOrPromise === "function"
? Promise.resolve().then(asyncFnOrPromise)
: Promise.resolve(asyncFnOrPromise);
export default noopRaceCancel;