@lifaon/rx-js-light
Version:
Blazing fast Observables
18 lines (17 loc) • 723 B
JavaScript
import {isNullish} from "../../helpers/is-type/is-nullish.mjs";
import {DEFAULT_ABORTED_THROW_FUNCTION} from "../default-aborted-throw-function.constant.mjs";
export function wrapFunctionWithAbortSignal(callback, signal, onAborted) {
return (...args) => {
return signal.aborted ? onAborted() : callback(...args);
};
}
export function wrapFunctionWithAbortSignalAndThrow(callback, signal) {
return wrapFunctionWithAbortSignal(callback, signal, DEFAULT_ABORTED_THROW_FUNCTION);
}
export function wrapFunctionWithOptionalAbortSignalAndThrow(callback, signal) {
if (isNullish(signal)) {
return callback;
} else {
return wrapFunctionWithAbortSignal(callback, signal, DEFAULT_ABORTED_THROW_FUNCTION);
}
}