@rpldy/uploader
Version:
the processing and queuing engine for react-uploady
56 lines (55 loc) • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _shared = require("@rpldy/shared");
var _consts = require("./consts");
var _queue = _interopRequireDefault(require("./queue"));
var _batchItemsSender = _interopRequireDefault(require("./batchItemsSender"));
var _batch = _interopRequireDefault(require("./batch"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const createProcessor = (trigger, cancellable, options, uploaderId) => {
const sender = (0, _batchItemsSender.default)(),
queue = (0, _queue.default)(options, trigger, cancellable, sender, uploaderId);
return {
abortBatch: batchId => {
queue.abortBatch(batchId);
},
abort: id => {
if (id) {
queue.abortItem(id);
} else {
queue.abortAll();
}
},
addNewBatch: (files, processOptions) => (0, _batch.default)(files, uploaderId, processOptions).then(batch => {
let resultP;
if (batch.items.length) {
const addedBatch = queue.addBatch(batch, processOptions);
resultP = queue.runCancellable(_consts.UPLOADER_EVENTS.BATCH_ADD, addedBatch, processOptions).then(isCancelled => {
if (!isCancelled) {
_shared.logger.debugLog(`uploady.uploader [${uploaderId}]: new items added - auto upload =
${String(processOptions.autoUpload)}`, addedBatch.items);
if (processOptions.autoUpload) {
queue.uploadBatch(addedBatch);
}
} else {
queue.cancelBatch(addedBatch);
}
return addedBatch;
});
} else {
_shared.logger.debugLog(`uploady.uploader: no items to add. batch ${batch.id} is empty. check fileFilter if this isn't intended`);
}
return resultP || Promise.resolve(null);
}),
clearPendingBatches: () => {
queue.clearPendingBatches();
},
processPendingBatches: uploadOptions => {
queue.uploadPendingBatches(uploadOptions);
}
};
};
var _default = exports.default = createProcessor;