UNPKG

@rpldy/uploader

Version:

the processing and queuing engine for react-uploady

53 lines (52 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.processAbortItem = exports.processAbortBatch = exports.processAbortAll = void 0; var _shared = require("@rpldy/shared"); var _consts = require("../consts"); var _processFinishedRequest = _interopRequireDefault(require("./processFinishedRequest")); var _processQueueNext = _interopRequireDefault(require("./processQueueNext")); var _batchHelpers = require("./batchHelpers"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const getFinalizeAbortedItem = queue => (id, data) => (0, _processFinishedRequest.default)(queue, [{ id, info: data }], _processQueueNext.default); const processAbortItem = (queue, id) => { const abortItemMethod = queue.getOptions().abortItem; (0, _shared.invariant)(!!abortItemMethod, "Abort Item method not provided yet abortItem was called"); const state = queue.getState(); return abortItemMethod(id, state.items, state.aborts, getFinalizeAbortedItem(queue)); }; exports.processAbortItem = processAbortItem; const processAbortBatch = (queue, id) => { const abortBatchMethod = queue.getOptions().abortBatch; (0, _shared.invariant)(!!abortBatchMethod, "Abort Batch method not provided yet abortItem was called"); const state = queue.getState(), batchData = state.batches[id], batch = batchData?.batch; if (batch && !(0, _batchHelpers.getIsBatchFinalized)(batch)) { (0, _batchHelpers.finalizeBatch)(queue, id, _consts.UPLOADER_EVENTS.BATCH_ABORT, _shared.BATCH_STATES.ABORTED); const { isFast } = abortBatchMethod(batch, batchData.batchOptions, state.aborts, state.itemQueue, getFinalizeAbortedItem(queue), queue.getOptions()); if (isFast) { queue.clearBatchUploads(batch.id); } } }; exports.processAbortBatch = processAbortBatch; const processAbortAll = queue => { const abortAllMethod = queue.getOptions().abortAll; (0, _shared.invariant)(!!abortAllMethod, "Abort All method not provided yet abortAll was called"); queue.trigger(_consts.UPLOADER_EVENTS.ALL_ABORT); const state = queue.getState(); const { isFast } = abortAllMethod(state.items, state.aborts, state.itemQueue, getFinalizeAbortedItem(queue), queue.getOptions()); if (isFast) { queue.clearAllUploads(); } }; exports.processAbortAll = processAbortAll;