UNPKG

@gravity-ui/data-source

Version:
19 lines 931 B
import _typeof from "@babel/runtime/helpers/typeof"; export var isCancellable = function isCancellable(value) { return _typeof(value) === 'object' && value !== null && 'cancel' in value && typeof value.cancel === 'function'; }; export var isAbortable = function isAbortable(value) { return _typeof(value) === 'object' && value !== null && 'signal' in value && _typeof(value.signal) === 'object' && value.signal !== null && 'addEventListener' in value.signal && typeof value.signal.addEventListener === 'function'; }; export var withCancellation = function withCancellation(fetch) { return function (context, fetchContext, request) { var value = fetch(context, fetchContext, request); if (isAbortable(fetchContext) && isCancellable(value)) { fetchContext.signal.addEventListener('abort', function () { value.cancel(); }); } return value; }; }; // #sourceMappingURL=withCancellation.js.map