UNPKG

@rpldy/uploader

Version:

the processing and queuing engine for react-uploady

56 lines (55 loc) 2.11 kB
"use strict"; 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;