@rpldy/uploader
Version:
the processing and queuing engine for react-uploady
53 lines (52 loc) • 2.35 kB
JavaScript
;
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;