@rpldy/uploader
Advanced tools
Comparing version 0.6.0 to 0.7.0
@@ -16,3 +16,3 @@ "use strict"; | ||
var processFiles = function processFiles(batchId, files, fileFilter) { | ||
var processFiles = function (batchId, files, fileFilter) { | ||
return Array.prototype.filter.call(files, fileFilter || _defaults.DEFAULT_FILTER).map(function (f) { | ||
@@ -19,0 +19,0 @@ return (0, _shared.createBatchItem)(f, batchId); |
@@ -26,3 +26,3 @@ "use strict"; | ||
var reportItemsProgress = function reportItemsProgress(items, completed, loaded, trigger) { | ||
var reportItemsProgress = function (items, completed, loaded, trigger) { | ||
items.forEach(function (item) { | ||
@@ -35,3 +35,3 @@ _shared.logger.debugLog("uploady.uploader.processor: file: ".concat(item.id, " progress event: loaded(").concat(loaded, ") - completed(").concat(completed, ")")); | ||
var onItemUploadProgress = function onItemUploadProgress(items, batch, e, trigger) { | ||
var onItemUploadProgress = function (items, batch, e, trigger) { | ||
var completed = Math.min(e.loaded / e.total * 100, 100), | ||
@@ -45,28 +45,26 @@ completedPerItem = completed / items.length, | ||
var _default = function _default() { | ||
var send = function send(items, batch, batchOptions) { | ||
var destination = batchOptions.destination, | ||
url = destination === null || destination === void 0 ? void 0 : destination.url; | ||
var _addLife = (0, _lifeEvents["default"])({ | ||
send: function (items, batch, batchOptions) { | ||
var destination = batchOptions.destination, | ||
url = destination === null || destination === void 0 ? void 0 : destination.url; | ||
if (!url) { | ||
throw new Error("Destination URL not found! Can't send files without it"); | ||
if (!url) { | ||
throw new Error("Destination URL not found! Can't send files without it"); | ||
} | ||
var throttledProgress = (0, _shared.throttle)(function (e) { | ||
return onItemUploadProgress(items, batch, e, trigger); | ||
}, _consts.PROGRESS_DELAY, true); | ||
var send = (0, _shared.isFunction)(batchOptions.send) ? batchOptions.send : _sender["default"]; | ||
return send(items, url, { | ||
method: (destination === null || destination === void 0 ? void 0 : destination.method) || batchOptions.method || _defaults.DEFAULT_OPTIONS.method, | ||
paramName: (destination === null || destination === void 0 ? void 0 : destination.filesParamName) || batchOptions.inputFieldName || _defaults.DEFAULT_PARAM_NAME, | ||
params: _objectSpread(_objectSpread({}, batchOptions.params), destination === null || destination === void 0 ? void 0 : destination.params), | ||
forceJsonResponse: batchOptions.forceJsonResponse, | ||
withCredentials: batchOptions.withCredentials, | ||
formatGroupParamName: batchOptions.formatGroupParamName, | ||
headers: destination === null || destination === void 0 ? void 0 : destination.headers, | ||
sendWithFormData: batchOptions.sendWithFormData | ||
}, throttledProgress); | ||
} | ||
var throttledProgress = (0, _shared.throttle)(function (e) { | ||
return onItemUploadProgress(items, batch, e, trigger); | ||
}, _consts.PROGRESS_DELAY, true); | ||
var send = (0, _shared.isFunction)(batchOptions.send) ? batchOptions.send : _sender["default"]; | ||
return send(items, url, { | ||
method: (destination === null || destination === void 0 ? void 0 : destination.method) || batchOptions.method || _defaults.DEFAULT_OPTIONS.method, | ||
paramName: (destination === null || destination === void 0 ? void 0 : destination.filesParamName) || batchOptions.inputFieldName || _defaults.DEFAULT_PARAM_NAME, | ||
params: _objectSpread(_objectSpread({}, batchOptions.params), destination === null || destination === void 0 ? void 0 : destination.params), | ||
forceJsonResponse: batchOptions.forceJsonResponse, | ||
withCredentials: batchOptions.withCredentials, | ||
formatGroupParamName: batchOptions.formatGroupParamName, | ||
headers: destination === null || destination === void 0 ? void 0 : destination.headers, | ||
sendWithFormData: batchOptions.sendWithFormData | ||
}, throttledProgress); | ||
}; | ||
var _addLife = (0, _lifeEvents["default"])({ | ||
send: send | ||
}, Object.values(_consts.SENDER_EVENTS)), | ||
@@ -73,0 +71,0 @@ trigger = _addLife.trigger, |
@@ -13,3 +13,3 @@ "use strict"; | ||
var DEFAULT_FILTER = function DEFAULT_FILTER() { | ||
var DEFAULT_FILTER = function () { | ||
return true; | ||
@@ -21,2 +21,3 @@ }; | ||
autoUpload: true, | ||
clearPendingOnAdd: false, | ||
inputFieldName: "file", | ||
@@ -23,0 +24,0 @@ concurrent: false, |
@@ -8,4 +8,2 @@ "use strict"; | ||
var _shared = require("@rpldy/shared"); | ||
var _queue = _interopRequireDefault(require("./queue")); | ||
@@ -15,30 +13,29 @@ | ||
var _batch = _interopRequireDefault(require("./batch")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
var _default = function _default(trigger, options, uploaderId) { | ||
// $FlowFixMe - https://github.com/facebook/flow/issues/8215 | ||
var cancellable = (0, _shared.triggerCancellable)(trigger), | ||
sender = (0, _batchItemsSender["default"])(), | ||
queue = (0, _queue["default"])(options, cancellable, trigger, sender, uploaderId); | ||
var process = function process(batch, batchOptions) { | ||
queue.uploadBatch(batch, batchOptions); | ||
}; | ||
var abortBatch = function abortBatch(batchId) { | ||
queue.abortBatch(batchId); | ||
}; | ||
var abort = function abort(id) { | ||
if (id) { | ||
queue.abortItem(id); | ||
} else { | ||
queue.abortAll(); | ||
} | ||
}; | ||
var _default = function _default(trigger, cancellable, options, uploaderId) { | ||
var sender = (0, _batchItemsSender["default"])(), | ||
queue = (0, _queue["default"])(options, trigger, cancellable, sender, uploaderId); | ||
var runCancellable = queue.runCancellable; | ||
return { | ||
process: process, | ||
abortBatch: abortBatch, | ||
abort: abort | ||
process: function process(batch, batchOptions) { | ||
queue.uploadBatch(batch, batchOptions); | ||
}, | ||
abortBatch: function abortBatch(batchId) { | ||
queue.abortBatch(batchId); | ||
}, | ||
abort: function abort(id) { | ||
if (id) { | ||
queue.abortItem(id); | ||
} else { | ||
queue.abortAll(); | ||
} | ||
}, | ||
addNewBatch: function addNewBatch(files, uploaderId, processOptions) { | ||
var batch = (0, _batch["default"])(files, uploaderId, processOptions); | ||
return queue.addBatch(batch, processOptions); | ||
}, | ||
runCancellable: runCancellable | ||
}; | ||
@@ -45,0 +42,0 @@ }; |
@@ -18,7 +18,7 @@ "use strict"; | ||
var isItemInProgress = function isItemInProgress(state) { | ||
var isItemInProgress = function (state) { | ||
return state === _shared.FILE_STATES.ADDED || state === _shared.FILE_STATES.UPLOADING; | ||
}; | ||
var callAbortOnItem = function callAbortOnItem(queue, id, next) { | ||
var callAbortOnItem = function (queue, id, next) { | ||
var abortCalled = false; | ||
@@ -53,3 +53,3 @@ var state = queue.getState(), | ||
var abortAll = function abortAll(queue, next) { | ||
var abortAll = function (queue, next) { | ||
var items = queue.getState().items; | ||
@@ -63,3 +63,3 @@ Object.keys(items).forEach(function (id) { | ||
var abortItem = function abortItem(queue, id, next) { | ||
var abortItem = function (queue, id, next) { | ||
return callAbortOnItem(queue, id, next); | ||
@@ -70,3 +70,3 @@ }; | ||
var abortBatch = function abortBatch(queue, id, next) { | ||
var abortBatch = function (queue, id, next) { | ||
var state = queue.getState(), | ||
@@ -73,0 +73,0 @@ batchData = state.batches[id], |
@@ -22,3 +22,3 @@ "use strict"; | ||
var getBatchFromState = function getBatchFromState(state, id) { | ||
var getBatchFromState = function (state, id) { | ||
return state.batches[id].batch; | ||
@@ -29,7 +29,7 @@ }; | ||
var getBatch = function getBatch(queue, id) { | ||
var getBatch = function (queue, id) { | ||
return getBatchFromState(queue.getState(), id); | ||
}; | ||
var isItemBelongsToBatch = function isItemBelongsToBatch(queue, itemId, batchId) { | ||
var isItemBelongsToBatch = function (queue, itemId, batchId) { | ||
return queue.getState().items[itemId].batchId === batchId; | ||
@@ -40,3 +40,3 @@ }; | ||
var getBatchDataFromItemId = function getBatchDataFromItemId(queue, itemId) { | ||
var getBatchDataFromItemId = function (queue, itemId) { | ||
var state = queue.getState(); | ||
@@ -49,3 +49,3 @@ var item = state.items[itemId]; | ||
var getBatchFromItemId = function getBatchFromItemId(queue, itemId) { | ||
var getBatchFromItemId = function (queue, itemId) { | ||
return getBatchDataFromItemId(queue, itemId).batch; | ||
@@ -56,3 +56,3 @@ }; | ||
var removeBatchItems = function removeBatchItems(queue, batchId) { | ||
var removeBatchItems = function (queue, batchId) { | ||
var batch = getBatch(queue, batchId); | ||
@@ -72,3 +72,3 @@ queue.updateState(function (state) { | ||
var removeBatch = function removeBatch(queue, batchId) { | ||
var removeBatch = function (queue, batchId) { | ||
queue.updateState(function (state) { | ||
@@ -79,3 +79,3 @@ delete state.batches[batchId]; | ||
var cancelBatchForItem = function cancelBatchForItem(queue, itemId) { | ||
var cancelBatchForItem = function (queue, itemId) { | ||
var batch = getBatchFromItemId(queue, itemId), | ||
@@ -99,3 +99,3 @@ batchId = batch.id; | ||
var isNewBatchStarting = function isNewBatchStarting(queue, itemId) { | ||
var isNewBatchStarting = function (queue, itemId) { | ||
var batch = getBatchFromItemId(queue, itemId); | ||
@@ -107,5 +107,5 @@ return queue.getState().currentBatch !== batch.id; | ||
var loadNewBatchForItem = function loadNewBatchForItem(queue, itemId) { | ||
var loadNewBatchForItem = function (queue, itemId) { | ||
var batch = getBatchFromItemId(queue, itemId); | ||
return queue.cancellable(_consts.UPLOADER_EVENTS.BATCH_START, batch).then(function (isCancelled) { | ||
return queue.runCancellable(_consts.UPLOADER_EVENTS.BATCH_START, batch).then(function (isCancelled) { | ||
if (!isCancelled) { | ||
@@ -123,3 +123,3 @@ queue.updateState(function (state) { | ||
var isBatchFinished = function isBatchFinished(queue) { | ||
var isBatchFinished = function (queue) { | ||
var itemQueue = queue.getState().itemQueue; | ||
@@ -131,7 +131,7 @@ return itemQueue.length === 0 || isNewBatchStarting(queue, itemQueue[0]); | ||
var cleanUpFinishedBatch = function cleanUpFinishedBatch(queue) { | ||
var cleanUpFinishedBatch = function (queue) { | ||
var state = queue.getState(); | ||
var batchId = state.currentBatch; | ||
if (batchId && isBatchFinished(queue)) { | ||
if (batchId && state.batches[batchId] && isBatchFinished(queue)) { | ||
triggerUploaderBatchEvent(queue, batchId, _consts.UPLOADER_EVENTS.BATCH_FINISH); | ||
@@ -145,3 +145,3 @@ removeBatchItems(queue, batchId); | ||
var triggerUploaderBatchEvent = function triggerUploaderBatchEvent(queue, batchId, event) { | ||
var triggerUploaderBatchEvent = function (queue, batchId, event) { | ||
var state = queue.getState(), | ||
@@ -164,3 +164,3 @@ batch = getBatchFromState(state, batchId), | ||
var getIsItemBatchReady = function getIsItemBatchReady(queue, itemId) { | ||
var getIsItemBatchReady = function (queue, itemId) { | ||
var batch = getBatchFromItemId(queue, itemId); | ||
@@ -172,3 +172,3 @@ return BATCH_READY_STATES.includes(batch.state); | ||
var detachRecycledFromPreviousBatch = function detachRecycledFromPreviousBatch(queue, item) { | ||
var detachRecycledFromPreviousBatch = function (queue, item) { | ||
var previousBatch = item.previousBatch; | ||
@@ -175,0 +175,0 @@ |
@@ -10,4 +10,2 @@ "use strict"; | ||
var _simpleState = require("@rpldy/simple-state"); | ||
var _consts = require("../consts"); | ||
@@ -23,8 +21,6 @@ | ||
var triggerPreSendUpdate = function triggerPreSendUpdate(queue, items, options) { | ||
var triggerPreSendUpdate = function (queue, items, options) { | ||
return (0, _shared.triggerUpdater)(queue.trigger, _consts.UPLOADER_EVENTS.REQUEST_PRE_SEND, { | ||
items: items.map(function (i) { | ||
return (0, _simpleState.unwrap)(i); | ||
}), | ||
options: (0, _simpleState.unwrap)(options) | ||
items: items, | ||
options: options | ||
}) // $FlowFixMe - https://github.com/facebook/flow/issues/8215 | ||
@@ -57,3 +53,3 @@ .then(function (updated) { | ||
var prepareAllowedItems = function prepareAllowedItems(queue, items) { | ||
var prepareAllowedItems = function (queue, items) { | ||
var allowedIds = items.map(function (item) { | ||
@@ -86,3 +82,3 @@ return item.id; | ||
var updateUploadingState = function updateUploadingState(queue, items, sendResult) { | ||
var updateUploadingState = function (queue, items, sendResult) { | ||
queue.updateState(function (state) { | ||
@@ -97,3 +93,3 @@ items.forEach(function (bi) { | ||
var sendAllowedItems = function sendAllowedItems(queue, itemsSendData, next) { | ||
var sendAllowedItems = function (queue, itemsSendData, next) { | ||
var items = itemsSendData.items, | ||
@@ -116,3 +112,3 @@ options = itemsSendData.options; | ||
var reportCancelledItems = function reportCancelledItems(queue, items, cancelledResults, next) { | ||
var reportCancelledItems = function (queue, items, cancelledResults, next) { | ||
var cancelledItemsIds = cancelledResults.map(function (isCancelled, index) { | ||
@@ -140,3 +136,3 @@ return isCancelled ? items[index].id : null; | ||
var getAllowedItem = function getAllowedItem(id, queue) { | ||
var getAllowedItem = function (id, queue) { | ||
return queue.getState().items[id]; | ||
@@ -146,3 +142,3 @@ }; //send group of items to be uploaded | ||
var processBatchItems = function processBatchItems(queue, ids, next) { | ||
var processBatchItems = function (queue, ids, next) { | ||
var state = queue.getState(); //ids will have more than one when grouping is allowed | ||
@@ -156,3 +152,3 @@ | ||
return Promise.all(items.map(function (i) { | ||
return queue.cancellable(_consts.UPLOADER_EVENTS.ITEM_START, i); | ||
return queue.runCancellable(_consts.UPLOADER_EVENTS.ITEM_START, i); | ||
})).then(function (cancelledResults) { | ||
@@ -159,0 +155,0 @@ var allowedItems = cancelledResults.map(function (isCancelled, index) { |
@@ -22,7 +22,7 @@ "use strict"; | ||
var getIsFinalized = function getIsFinalized(item) { | ||
var getIsFinalized = function (item) { | ||
return !!~ITEM_FINALIZE_STATES.indexOf(item.state); | ||
}; | ||
var _default = function _default(queue, finishedData, next) { | ||
var processFinishedRequest = function (queue, finishedData, next) { | ||
finishedData.forEach(function (itemData) { | ||
@@ -82,2 +82,3 @@ var state = queue.getState(); | ||
var _default = processFinishedRequest; | ||
exports["default"] = _default; |
@@ -16,3 +16,3 @@ "use strict"; | ||
var getIsItemInActiveRequest = function getIsItemInActiveRequest(queue, itemId) { | ||
var getIsItemInActiveRequest = function (queue, itemId) { | ||
return !!~queue.getState().activeIds // $FlowFixMe - no flat | ||
@@ -22,7 +22,7 @@ .flat().indexOf(itemId); | ||
var getIsItemReady = function getIsItemReady(item) { | ||
var getIsItemReady = function (item) { | ||
return item.state === _shared.FILE_STATES.ADDED; | ||
}; | ||
var findNextItemIndex = function findNextItemIndex(queue) { | ||
var findNextItemIndex = function (queue) { | ||
var state = queue.getState(), | ||
@@ -44,3 +44,3 @@ itemQueue = state.itemQueue, | ||
var getNextIdGroup = function getNextIdGroup(queue) { | ||
var getNextIdGroup = function (queue) { | ||
var itemQueue = queue.getState().itemQueue; | ||
@@ -75,3 +75,3 @@ var nextItemIndex = findNextItemIndex(queue); | ||
var processNext = function processNext(queue) { | ||
var processNext = function (queue) { | ||
var ids = getNextIdGroup(queue); | ||
@@ -78,0 +78,0 @@ var resultP = Promise.resolve(); |
@@ -12,3 +12,3 @@ "use strict"; | ||
var _simpleState = _interopRequireWildcard(require("@rpldy/simple-state")); | ||
var _simpleState = _interopRequireDefault(require("@rpldy/simple-state")); | ||
@@ -23,4 +23,2 @@ var _consts = require("../consts"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } | ||
@@ -30,2 +28,4 @@ | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } | ||
@@ -35,19 +35,11 @@ | ||
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } | ||
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
var _default = function _default(options, cancellable, trigger, sender, uploaderId) { | ||
var createUploaderQueue = function (options, trigger, cancellable, sender, uploaderId) { | ||
var _createState = (0, _simpleState["default"])({ | ||
@@ -64,31 +56,11 @@ itemQueue: [], | ||
var unWrapAndTrigger = function unWrapAndTrigger(name) { | ||
for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
data[_key - 1] = arguments[_key]; | ||
} | ||
return trigger.apply(void 0, [name].concat(_toConsumableArray(data.map(function (d) { | ||
return (0, _simpleState.unwrap)(d); | ||
})))); | ||
}; | ||
var unWrapAndCancellable = function unWrapAndCancellable(name) { | ||
for (var _len2 = arguments.length, data = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { | ||
data[_key2 - 1] = arguments[_key2]; | ||
} | ||
return cancellable.apply(void 0, [name].concat(_toConsumableArray(data.map(function (d) { | ||
return (0, _simpleState.unwrap)(d); | ||
})))); | ||
}; | ||
var getState = function getState() { | ||
var getState = function () { | ||
return state; | ||
}; | ||
var updateState = function updateState(updater) { | ||
var updateState = function (updater) { | ||
update(updater); | ||
}; | ||
var add = function add(item) { | ||
var add = function (item) { | ||
if (state.items[item.id] && !item.recycled) { | ||
@@ -108,14 +80,3 @@ throw new Error("Uploader queue conflict - item ".concat(item.id, " already exists")); | ||
var uploadBatch = function uploadBatch(batch, batchOptions) { | ||
updateState(function (state) { | ||
state.batches[batch.id] = { | ||
batch: batch, | ||
batchOptions: batchOptions | ||
}; | ||
}); | ||
batch.items.forEach(add); | ||
(0, _processQueueNext["default"])(queueState); | ||
}; | ||
var handleItemProgress = function handleItemProgress(item, completed, loaded) { | ||
var handleItemProgress = function (item, completed, loaded) { | ||
if (state.items[item.id]) { | ||
@@ -128,3 +89,3 @@ updateState(function (state) { | ||
unWrapAndTrigger(_consts.UPLOADER_EVENTS.ITEM_PROGRESS, getState().items[item.id]); | ||
trigger(_consts.UPLOADER_EVENTS.ITEM_PROGRESS, getState().items[item.id]); | ||
} | ||
@@ -156,3 +117,3 @@ }; | ||
}); | ||
unWrapAndTrigger(_consts.UPLOADER_EVENTS.BATCH_PROGRESS, state.batches[batch.id].batch); | ||
trigger(_consts.UPLOADER_EVENTS.BATCH_PROGRESS, state.batches[batch.id].batch); | ||
} | ||
@@ -169,4 +130,15 @@ }); | ||
updateState: updateState, | ||
trigger: unWrapAndTrigger, | ||
cancellable: unWrapAndCancellable, | ||
trigger: trigger, | ||
runCancellable: function runCancellable(name) { | ||
if (!(0, _shared.isFunction)(cancellable)) { | ||
//for flow :( | ||
throw new Error("cancellable is of wrong type"); | ||
} | ||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
return cancellable.apply(void 0, [name].concat(args)); | ||
}, | ||
sender: sender, | ||
@@ -176,28 +148,42 @@ handleItemProgress: handleItemProgress | ||
if (_shared.hasWindow && _shared.logger.isDebugOn()) { | ||
if ((0, _shared.hasWindow)() && _shared.logger.isDebugOn()) { | ||
window["__rpldy_".concat(uploaderId, "_queue_state")] = queueState; | ||
} | ||
var abortItem = function abortItem(id) { | ||
return abortMethods.abortItem(queueState, id, _processQueueNext["default"]); | ||
}; | ||
var abortBatch = function abortBatch(id) { | ||
abortMethods.abortBatch(queueState, id, _processQueueNext["default"]); | ||
}; | ||
var abortAll = function abortAll() { | ||
abortMethods.abortAll(queueState, _processQueueNext["default"]); | ||
}; | ||
return { | ||
updateState: updateState, | ||
getState: queueState.getState, | ||
uploadBatch: uploadBatch, | ||
abortItem: abortItem, | ||
abortBatch: abortBatch, | ||
abortAll: abortAll | ||
runCancellable: queueState.runCancellable, | ||
uploadBatch: function uploadBatch(batch, batchOptions) { | ||
if (batchOptions) { | ||
updateState(function (state) { | ||
state.batches[batch.id].batchOptions = batchOptions; | ||
}); | ||
} | ||
batch.items.forEach(add); | ||
(0, _processQueueNext["default"])(queueState); | ||
}, | ||
addBatch: function addBatch(batch, batchOptions) { | ||
updateState(function (state) { | ||
state.batches[batch.id] = { | ||
batch: batch, | ||
batchOptions: batchOptions | ||
}; | ||
}); | ||
return (0, _batchHelpers.getBatchFromState)(state, batch.id); | ||
}, | ||
abortItem: function abortItem(id) { | ||
return abortMethods.abortItem(queueState, id, _processQueueNext["default"]); | ||
}, | ||
abortBatch: function abortBatch(id) { | ||
abortMethods.abortBatch(queueState, id, _processQueueNext["default"]); | ||
}, | ||
abortAll: function abortAll() { | ||
abortMethods.abortAll(queueState, _processQueueNext["default"]); | ||
} | ||
}; | ||
}; | ||
var _default = createUploaderQueue; | ||
exports["default"] = _default; |
"use strict"; | ||
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } | ||
Object.defineProperty(exports, "__esModule", { | ||
@@ -8,8 +10,6 @@ value: true | ||
var _lifeEvents = _interopRequireDefault(require("@rpldy/life-events")); | ||
var _lifeEvents = _interopRequireWildcard(require("@rpldy/life-events")); | ||
var _shared = require("@rpldy/shared"); | ||
var _batch = _interopRequireDefault(require("./batch")); | ||
var _processor = _interopRequireDefault(require("./processor")); | ||
@@ -23,2 +23,6 @@ | ||
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } | ||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } | ||
var EVENT_NAMES = Object.values(_consts.UPLOADER_EVENTS); | ||
@@ -43,3 +47,3 @@ var EXT_OUTSIDE_ENHANCER_TIME = "Uploady - uploader extensions can only be registered by enhancers", | ||
var update = function update(updateOptions) { | ||
var update = function (updateOptions) { | ||
//TODO: updating concurrent and maxConcurrent means we need to update the processor - not supported yet! | ||
@@ -51,10 +55,9 @@ uploaderOptions = (0, _shared.merge)({}, uploaderOptions, updateOptions); //need deep merge for destination | ||
var add = function add(files, addOptions) { | ||
var add = function (files, addOptions) { | ||
var processOptions = (0, _shared.merge)({}, uploaderOptions, addOptions); | ||
var batch = (0, _batch["default"])(files, uploader.id, processOptions); | ||
var batch = processor.addNewBatch(files, uploader.id, processOptions); | ||
var resultP; | ||
if (batch.items.length) { | ||
// $FlowFixMe - https://github.com/facebook/flow/issues/8215 | ||
resultP = cancellable(_consts.UPLOADER_EVENTS.BATCH_ADD, batch, processOptions).then(function (isCancelled) { | ||
resultP = processor.runCancellable(_consts.UPLOADER_EVENTS.BATCH_ADD, batch, processOptions).then(function (isCancelled) { | ||
if (!isCancelled) { | ||
@@ -64,4 +67,8 @@ _shared.logger.debugLog("uploady.uploader [".concat(uploader.id, "]: new items added - auto upload =\n ").concat(String(processOptions.autoUpload)), batch.items); | ||
if (processOptions.autoUpload) { | ||
processor.process(batch, processOptions); | ||
processor.process(batch); | ||
} else { | ||
if (processOptions.clearPendingOnAdd) { | ||
clearPending(); | ||
} | ||
pendingBatches.push({ | ||
@@ -74,3 +81,3 @@ batch: batch, | ||
batch.state = _shared.BATCH_STATES.CANCELLED; | ||
trigger(_consts.UPLOADER_EVENTS.BATCH_CANCEL, batch); | ||
triggerWithUnwrap(_consts.UPLOADER_EVENTS.BATCH_CANCEL, batch); | ||
} | ||
@@ -85,15 +92,3 @@ }); | ||
var abort = function abort(id) { | ||
processor.abort(id); | ||
}; | ||
var abortBatch = function abortBatch(id) { | ||
processor.abortBatch(id); | ||
}; | ||
var getPending = function getPending() { | ||
return pendingBatches.slice(); | ||
}; | ||
var clearPending = function clearPending() { | ||
var clearPending = function () { | ||
pendingBatches.splice(0); | ||
@@ -106,15 +101,7 @@ }; | ||
var upload = function upload() { | ||
pendingBatches.splice(0).forEach(function (_ref) { | ||
var batch = _ref.batch, | ||
uploadOptions = _ref.uploadOptions; | ||
return processor.process(batch, uploadOptions); | ||
}); | ||
}; | ||
var getOptions = function getOptions() { | ||
var getOptions = function () { | ||
return (0, _shared.clone)(uploaderOptions); | ||
}; | ||
var registerExtension = function registerExtension(name, methods) { | ||
var registerExtension = function (name, methods) { | ||
(0, _shared.invariant)(enhancerTime, EXT_OUTSIDE_ENHANCER_TIME); | ||
@@ -128,6 +115,2 @@ (0, _shared.invariant)(!extensions[name], EXT_ALREADY_EXISTS, name); | ||
var getExtension = function getExtension(name) { | ||
return extensions[name]; | ||
}; | ||
var _addLife = (0, _lifeEvents["default"])({ | ||
@@ -137,10 +120,24 @@ id: uploaderId, | ||
add: add, | ||
upload: upload, | ||
abort: abort, | ||
abortBatch: abortBatch, | ||
upload: function upload(uploadOptions) { | ||
pendingBatches.splice(0).forEach(function (_ref) { | ||
var batch = _ref.batch, | ||
batchOptions = _ref.uploadOptions; | ||
return processor.process(batch, (0, _shared.merge)({}, batchOptions, uploadOptions)); | ||
}); | ||
}, | ||
abort: function abort(id) { | ||
processor.abort(id); | ||
}, | ||
abortBatch: function abortBatch(id) { | ||
processor.abortBatch(id); | ||
}, | ||
getOptions: getOptions, | ||
getPending: getPending, | ||
getPending: function getPending() { | ||
return pendingBatches.slice(); | ||
}, | ||
clearPending: clearPending, | ||
registerExtension: registerExtension, | ||
getExtension: getExtension | ||
getExtension: function getExtension(name) { | ||
return extensions[name]; | ||
} | ||
}, EVENT_NAMES, { | ||
@@ -152,8 +149,24 @@ canAddEvents: false, | ||
uploader = _addLife.target; | ||
/** | ||
* ensures that data being exposed to client-land isnt a proxy, only pojos | ||
*/ | ||
var cancellable = (0, _shared.triggerCancellable)(trigger); | ||
var triggerWithUnwrap = function (name) { | ||
for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
data[_key - 1] = arguments[_key]; | ||
} | ||
//delays unwrap to the very last time on trigger. Will only unwrap if there are listeners | ||
var lp = (0, _lifeEvents.createLifePack)(function () { | ||
return data.map(_utils.deepProxyUnwrap); | ||
}); | ||
return trigger(name, lp); | ||
}; | ||
var cancellable = (0, _shared.triggerCancellable)(triggerWithUnwrap); | ||
if (uploaderOptions.enhancer) { | ||
enhancerTime = true; | ||
var enhanced = uploaderOptions.enhancer(uploader, trigger); | ||
var enhanced = uploaderOptions.enhancer(uploader, triggerWithUnwrap); | ||
enhancerTime = false; //graceful handling for enhancer forgetting to return uploader | ||
@@ -164,3 +177,3 @@ | ||
var processor = (0, _processor["default"])(trigger, uploaderOptions, uploader.id); | ||
var processor = (0, _processor["default"])(triggerWithUnwrap, cancellable, uploaderOptions, uploader.id); | ||
return (0, _shared.devFreeze)(uploader); | ||
@@ -167,0 +180,0 @@ }; |
@@ -6,8 +6,10 @@ "use strict"; | ||
}); | ||
exports.getIsFileList = exports.getMandatoryOptions = void 0; | ||
exports.deepProxyUnwrap = exports.getIsFileList = exports.getMandatoryOptions = void 0; | ||
var _shared = require("@rpldy/shared"); | ||
var _simpleState = require("@rpldy/simple-state"); | ||
var _defaults = require("./defaults"); | ||
var _shared = require("@rpldy/shared"); | ||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
@@ -19,5 +21,5 @@ | ||
var FILE_LIST_SUPPORT = _shared.hasWindow && "FileList" in window; | ||
var FILE_LIST_SUPPORT = (0, _shared.hasWindow)() && "FileList" in window; | ||
var getMandatoryDestination = function getMandatoryDestination(dest) { | ||
var getMandatoryDestination = function (dest) { | ||
return _objectSpread({ | ||
@@ -29,3 +31,3 @@ filesParamName: _defaults.DEFAULT_PARAM_NAME, | ||
var getMandatoryOptions = function getMandatoryOptions(options) { | ||
var getMandatoryOptions = function (options) { | ||
return _objectSpread(_objectSpread(_objectSpread({}, _defaults.DEFAULT_OPTIONS), options), {}, { | ||
@@ -38,3 +40,3 @@ destination: options && options.destination ? getMandatoryDestination(options.destination) : null | ||
var getIsFileList = function getIsFileList(files) { | ||
var getIsFileList = function (files) { | ||
return (//in case files list was created in a different context(window) need to check toString | ||
@@ -44,3 +46,30 @@ FILE_LIST_SUPPORT && files instanceof FileList || files.toString() === "[object FileList]" | ||
}; | ||
/*** | ||
* will unwrap object from proxy | ||
* if obj itself isnt a proxy, will look for a proxy max 2 levels deep | ||
*/ | ||
exports.getIsFileList = getIsFileList; | ||
exports.getIsFileList = getIsFileList; | ||
var deepProxyUnwrap = function (obj) { | ||
var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; | ||
var result = obj; | ||
if (!(0, _shared.isProduction)()) { | ||
if (level < 3 && (0, _simpleState.isProxy)(obj)) { | ||
result = (0, _simpleState.unwrap)(obj); | ||
} else if (level < 3 && (0, _simpleState.isProxiable)(obj)) { | ||
result = Array.isArray(obj) ? Object.keys(obj).map(function (key) { | ||
return deepProxyUnwrap(obj[key]); | ||
}) : Object.keys(obj).reduce(function (res, key) { | ||
res[key] = deepProxyUnwrap(obj[key], level + 1); | ||
return res; | ||
}, {}); | ||
} | ||
} | ||
return result; | ||
}; | ||
exports.deepProxyUnwrap = deepProxyUnwrap; |
@@ -6,3 +6,3 @@ import { BATCH_STATES, createBatchItem } from "@rpldy/shared"; | ||
var processFiles = function processFiles(batchId, files, fileFilter) { | ||
var processFiles = function (batchId, files, fileFilter) { | ||
return Array.prototype.filter.call(files, fileFilter || DEFAULT_FILTER).map(function (f) { | ||
@@ -9,0 +9,0 @@ return createBatchItem(f, batchId); |
@@ -13,3 +13,3 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
var reportItemsProgress = function reportItemsProgress(items, completed, loaded, trigger) { | ||
var reportItemsProgress = function (items, completed, loaded, trigger) { | ||
items.forEach(function (item) { | ||
@@ -21,3 +21,3 @@ logger.debugLog("uploady.uploader.processor: file: ".concat(item.id, " progress event: loaded(").concat(loaded, ") - completed(").concat(completed, ")")); | ||
var onItemUploadProgress = function onItemUploadProgress(items, batch, e, trigger) { | ||
var onItemUploadProgress = function (items, batch, e, trigger) { | ||
var completed = Math.min(e.loaded / e.total * 100, 100), | ||
@@ -31,28 +31,26 @@ completedPerItem = completed / items.length, | ||
export default (function () { | ||
var send = function send(items, batch, batchOptions) { | ||
var destination = batchOptions.destination, | ||
url = destination === null || destination === void 0 ? void 0 : destination.url; | ||
var _addLife = addLife({ | ||
send: function (items, batch, batchOptions) { | ||
var destination = batchOptions.destination, | ||
url = destination === null || destination === void 0 ? void 0 : destination.url; | ||
if (!url) { | ||
throw new Error("Destination URL not found! Can't send files without it"); | ||
if (!url) { | ||
throw new Error("Destination URL not found! Can't send files without it"); | ||
} | ||
var throttledProgress = throttle(function (e) { | ||
return onItemUploadProgress(items, batch, e, trigger); | ||
}, PROGRESS_DELAY, true); | ||
var send = isFunction(batchOptions.send) ? batchOptions.send : defaultSend; | ||
return send(items, url, { | ||
method: (destination === null || destination === void 0 ? void 0 : destination.method) || batchOptions.method || DEFAULT_OPTIONS.method, | ||
paramName: (destination === null || destination === void 0 ? void 0 : destination.filesParamName) || batchOptions.inputFieldName || DEFAULT_PARAM_NAME, | ||
params: _objectSpread(_objectSpread({}, batchOptions.params), destination === null || destination === void 0 ? void 0 : destination.params), | ||
forceJsonResponse: batchOptions.forceJsonResponse, | ||
withCredentials: batchOptions.withCredentials, | ||
formatGroupParamName: batchOptions.formatGroupParamName, | ||
headers: destination === null || destination === void 0 ? void 0 : destination.headers, | ||
sendWithFormData: batchOptions.sendWithFormData | ||
}, throttledProgress); | ||
} | ||
var throttledProgress = throttle(function (e) { | ||
return onItemUploadProgress(items, batch, e, trigger); | ||
}, PROGRESS_DELAY, true); | ||
var send = isFunction(batchOptions.send) ? batchOptions.send : defaultSend; | ||
return send(items, url, { | ||
method: (destination === null || destination === void 0 ? void 0 : destination.method) || batchOptions.method || DEFAULT_OPTIONS.method, | ||
paramName: (destination === null || destination === void 0 ? void 0 : destination.filesParamName) || batchOptions.inputFieldName || DEFAULT_PARAM_NAME, | ||
params: _objectSpread(_objectSpread({}, batchOptions.params), destination === null || destination === void 0 ? void 0 : destination.params), | ||
forceJsonResponse: batchOptions.forceJsonResponse, | ||
withCredentials: batchOptions.withCredentials, | ||
formatGroupParamName: batchOptions.formatGroupParamName, | ||
headers: destination === null || destination === void 0 ? void 0 : destination.headers, | ||
sendWithFormData: batchOptions.sendWithFormData | ||
}, throttledProgress); | ||
}; | ||
var _addLife = addLife({ | ||
send: send | ||
}, Object.values(SENDER_EVENTS)), | ||
@@ -59,0 +57,0 @@ trigger = _addLife.trigger, |
import { devFreeze } from "@rpldy/shared"; | ||
export var DEFAULT_PARAM_NAME = "file"; | ||
export var DEFAULT_FILTER = function DEFAULT_FILTER() { | ||
export var DEFAULT_FILTER = function () { | ||
return true; | ||
@@ -8,2 +8,3 @@ }; | ||
autoUpload: true, | ||
clearPendingOnAdd: false, | ||
inputFieldName: "file", | ||
@@ -10,0 +11,0 @@ concurrent: false, |
@@ -1,31 +0,28 @@ | ||
import { triggerCancellable } from "@rpldy/shared"; | ||
import createUploadQueue from "./queue"; | ||
import createItemsSender from "./batchItemsSender"; | ||
export default (function (trigger, options, uploaderId) { | ||
// $FlowFixMe - https://github.com/facebook/flow/issues/8215 | ||
var cancellable = triggerCancellable(trigger), | ||
sender = createItemsSender(), | ||
queue = createUploadQueue(options, cancellable, trigger, sender, uploaderId); | ||
var process = function process(batch, batchOptions) { | ||
queue.uploadBatch(batch, batchOptions); | ||
}; | ||
var abortBatch = function abortBatch(batchId) { | ||
queue.abortBatch(batchId); | ||
}; | ||
var abort = function abort(id) { | ||
if (id) { | ||
queue.abortItem(id); | ||
} else { | ||
queue.abortAll(); | ||
} | ||
}; | ||
import createBatch from "./batch"; | ||
export default (function (trigger, cancellable, options, uploaderId) { | ||
var sender = createItemsSender(), | ||
queue = createUploadQueue(options, trigger, cancellable, sender, uploaderId); | ||
var runCancellable = queue.runCancellable; | ||
return { | ||
process: process, | ||
abortBatch: abortBatch, | ||
abort: abort | ||
process: function process(batch, batchOptions) { | ||
queue.uploadBatch(batch, batchOptions); | ||
}, | ||
abortBatch: function abortBatch(batchId) { | ||
queue.abortBatch(batchId); | ||
}, | ||
abort: function abort(id) { | ||
if (id) { | ||
queue.abortItem(id); | ||
} else { | ||
queue.abortAll(); | ||
} | ||
}, | ||
addNewBatch: function addNewBatch(files, uploaderId, processOptions) { | ||
var batch = createBatch(files, uploaderId, processOptions); | ||
return queue.addBatch(batch, processOptions); | ||
}, | ||
runCancellable: runCancellable | ||
}; | ||
}); |
@@ -6,7 +6,7 @@ import { BATCH_STATES, FILE_STATES, logger } from "@rpldy/shared"; | ||
var isItemInProgress = function isItemInProgress(state) { | ||
var isItemInProgress = function (state) { | ||
return state === FILE_STATES.ADDED || state === FILE_STATES.UPLOADING; | ||
}; | ||
var callAbortOnItem = function callAbortOnItem(queue, id, next) { | ||
var callAbortOnItem = function (queue, id, next) { | ||
var abortCalled = false; | ||
@@ -41,3 +41,3 @@ var state = queue.getState(), | ||
var abortAll = function abortAll(queue, next) { | ||
var abortAll = function (queue, next) { | ||
var items = queue.getState().items; | ||
@@ -49,7 +49,7 @@ Object.keys(items).forEach(function (id) { | ||
var abortItem = function abortItem(queue, id, next) { | ||
var abortItem = function (queue, id, next) { | ||
return callAbortOnItem(queue, id, next); | ||
}; | ||
var abortBatch = function abortBatch(queue, id, next) { | ||
var abortBatch = function (queue, id, next) { | ||
var state = queue.getState(), | ||
@@ -56,0 +56,0 @@ batchData = state.batches[id], |
@@ -12,15 +12,15 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
var getBatchFromState = function getBatchFromState(state, id) { | ||
var getBatchFromState = function (state, id) { | ||
return state.batches[id].batch; | ||
}; | ||
var getBatch = function getBatch(queue, id) { | ||
var getBatch = function (queue, id) { | ||
return getBatchFromState(queue.getState(), id); | ||
}; | ||
var isItemBelongsToBatch = function isItemBelongsToBatch(queue, itemId, batchId) { | ||
var isItemBelongsToBatch = function (queue, itemId, batchId) { | ||
return queue.getState().items[itemId].batchId === batchId; | ||
}; | ||
var getBatchDataFromItemId = function getBatchDataFromItemId(queue, itemId) { | ||
var getBatchDataFromItemId = function (queue, itemId) { | ||
var state = queue.getState(); | ||
@@ -31,7 +31,7 @@ var item = state.items[itemId]; | ||
var getBatchFromItemId = function getBatchFromItemId(queue, itemId) { | ||
var getBatchFromItemId = function (queue, itemId) { | ||
return getBatchDataFromItemId(queue, itemId).batch; | ||
}; | ||
var removeBatchItems = function removeBatchItems(queue, batchId) { | ||
var removeBatchItems = function (queue, batchId) { | ||
var batch = getBatch(queue, batchId); | ||
@@ -51,3 +51,3 @@ queue.updateState(function (state) { | ||
var removeBatch = function removeBatch(queue, batchId) { | ||
var removeBatch = function (queue, batchId) { | ||
queue.updateState(function (state) { | ||
@@ -58,3 +58,3 @@ delete state.batches[batchId]; | ||
var cancelBatchForItem = function cancelBatchForItem(queue, itemId) { | ||
var cancelBatchForItem = function (queue, itemId) { | ||
var batch = getBatchFromItemId(queue, itemId), | ||
@@ -74,3 +74,3 @@ batchId = batch.id; | ||
var isNewBatchStarting = function isNewBatchStarting(queue, itemId) { | ||
var isNewBatchStarting = function (queue, itemId) { | ||
var batch = getBatchFromItemId(queue, itemId); | ||
@@ -80,5 +80,5 @@ return queue.getState().currentBatch !== batch.id; | ||
var loadNewBatchForItem = function loadNewBatchForItem(queue, itemId) { | ||
var loadNewBatchForItem = function (queue, itemId) { | ||
var batch = getBatchFromItemId(queue, itemId); | ||
return queue.cancellable(UPLOADER_EVENTS.BATCH_START, batch).then(function (isCancelled) { | ||
return queue.runCancellable(UPLOADER_EVENTS.BATCH_START, batch).then(function (isCancelled) { | ||
if (!isCancelled) { | ||
@@ -94,3 +94,3 @@ queue.updateState(function (state) { | ||
var isBatchFinished = function isBatchFinished(queue) { | ||
var isBatchFinished = function (queue) { | ||
var itemQueue = queue.getState().itemQueue; | ||
@@ -100,7 +100,7 @@ return itemQueue.length === 0 || isNewBatchStarting(queue, itemQueue[0]); | ||
var cleanUpFinishedBatch = function cleanUpFinishedBatch(queue) { | ||
var cleanUpFinishedBatch = function (queue) { | ||
var state = queue.getState(); | ||
var batchId = state.currentBatch; | ||
if (batchId && isBatchFinished(queue)) { | ||
if (batchId && state.batches[batchId] && isBatchFinished(queue)) { | ||
triggerUploaderBatchEvent(queue, batchId, UPLOADER_EVENTS.BATCH_FINISH); | ||
@@ -112,3 +112,3 @@ removeBatchItems(queue, batchId); | ||
var triggerUploaderBatchEvent = function triggerUploaderBatchEvent(queue, batchId, event) { | ||
var triggerUploaderBatchEvent = function (queue, batchId, event) { | ||
var state = queue.getState(), | ||
@@ -129,3 +129,3 @@ batch = getBatchFromState(state, batchId), | ||
var getIsItemBatchReady = function getIsItemBatchReady(queue, itemId) { | ||
var getIsItemBatchReady = function (queue, itemId) { | ||
var batch = getBatchFromItemId(queue, itemId); | ||
@@ -135,3 +135,3 @@ return BATCH_READY_STATES.includes(batch.state); | ||
var detachRecycledFromPreviousBatch = function detachRecycledFromPreviousBatch(queue, item) { | ||
var detachRecycledFromPreviousBatch = function (queue, item) { | ||
var previousBatch = item.previousBatch; | ||
@@ -138,0 +138,0 @@ |
import { triggerUpdater, isSamePropInArrays, FILE_STATES, logger, getMerge } from "@rpldy/shared"; | ||
import { unwrap } from "@rpldy/simple-state"; | ||
import { UPLOADER_EVENTS } from "../consts"; | ||
@@ -9,8 +8,6 @@ import processFinishedRequest from "./processFinishedRequest"; | ||
var triggerPreSendUpdate = function triggerPreSendUpdate(queue, items, options) { | ||
var triggerPreSendUpdate = function (queue, items, options) { | ||
return triggerUpdater(queue.trigger, UPLOADER_EVENTS.REQUEST_PRE_SEND, { | ||
items: items.map(function (i) { | ||
return unwrap(i); | ||
}), | ||
options: unwrap(options) | ||
items: items, | ||
options: options | ||
}) // $FlowFixMe - https://github.com/facebook/flow/issues/8215 | ||
@@ -43,3 +40,3 @@ .then(function (updated) { | ||
var prepareAllowedItems = function prepareAllowedItems(queue, items) { | ||
var prepareAllowedItems = function (queue, items) { | ||
var allowedIds = items.map(function (item) { | ||
@@ -72,3 +69,3 @@ return item.id; | ||
var updateUploadingState = function updateUploadingState(queue, items, sendResult) { | ||
var updateUploadingState = function (queue, items, sendResult) { | ||
queue.updateState(function (state) { | ||
@@ -83,3 +80,3 @@ items.forEach(function (bi) { | ||
var sendAllowedItems = function sendAllowedItems(queue, itemsSendData, next) { | ||
var sendAllowedItems = function (queue, itemsSendData, next) { | ||
var items = itemsSendData.items, | ||
@@ -102,3 +99,3 @@ options = itemsSendData.options; | ||
var reportCancelledItems = function reportCancelledItems(queue, items, cancelledResults, next) { | ||
var reportCancelledItems = function (queue, items, cancelledResults, next) { | ||
var cancelledItemsIds = cancelledResults.map(function (isCancelled, index) { | ||
@@ -126,3 +123,3 @@ return isCancelled ? items[index].id : null; | ||
var getAllowedItem = function getAllowedItem(id, queue) { | ||
var getAllowedItem = function (id, queue) { | ||
return queue.getState().items[id]; | ||
@@ -132,3 +129,3 @@ }; //send group of items to be uploaded | ||
var processBatchItems = function processBatchItems(queue, ids, next) { | ||
var processBatchItems = function (queue, ids, next) { | ||
var state = queue.getState(); //ids will have more than one when grouping is allowed | ||
@@ -142,3 +139,3 @@ | ||
return Promise.all(items.map(function (i) { | ||
return queue.cancellable(UPLOADER_EVENTS.ITEM_START, i); | ||
return queue.runCancellable(UPLOADER_EVENTS.ITEM_START, i); | ||
})).then(function (cancelledResults) { | ||
@@ -145,0 +142,0 @@ var allowedItems = cancelledResults.map(function (isCancelled, index) { |
@@ -11,7 +11,7 @@ var _FILE_STATE_TO_EVENT_; | ||
var getIsFinalized = function getIsFinalized(item) { | ||
var getIsFinalized = function (item) { | ||
return !!~ITEM_FINALIZE_STATES.indexOf(item.state); | ||
}; | ||
export default (function (queue, finishedData, next) { | ||
var processFinishedRequest = function (queue, finishedData, next) { | ||
finishedData.forEach(function (itemData) { | ||
@@ -68,2 +68,4 @@ var state = queue.getState(); | ||
return next(queue); | ||
}); | ||
}; | ||
export default processFinishedRequest; |
@@ -5,3 +5,3 @@ import { FILE_STATES, logger } from "@rpldy/shared"; | ||
var getIsItemInActiveRequest = function getIsItemInActiveRequest(queue, itemId) { | ||
var getIsItemInActiveRequest = function (queue, itemId) { | ||
return !!~queue.getState().activeIds // $FlowFixMe - no flat | ||
@@ -11,7 +11,7 @@ .flat().indexOf(itemId); | ||
var getIsItemReady = function getIsItemReady(item) { | ||
var getIsItemReady = function (item) { | ||
return item.state === FILE_STATES.ADDED; | ||
}; | ||
export var findNextItemIndex = function findNextItemIndex(queue) { | ||
export var findNextItemIndex = function (queue) { | ||
var state = queue.getState(), | ||
@@ -30,3 +30,3 @@ itemQueue = state.itemQueue, | ||
}; | ||
export var getNextIdGroup = function getNextIdGroup(queue) { | ||
export var getNextIdGroup = function (queue) { | ||
var itemQueue = queue.getState().itemQueue; | ||
@@ -59,3 +59,3 @@ var nextItemIndex = findNextItemIndex(queue); | ||
var processNext = function processNext(queue) { | ||
var processNext = function (queue) { | ||
var ids = getNextIdGroup(queue); | ||
@@ -62,0 +62,0 @@ var resultP = Promise.resolve(); |
@@ -5,25 +5,18 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } | ||
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } | ||
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
import { logger, hasWindow } from "@rpldy/shared"; | ||
import createState, { unwrap } from "@rpldy/simple-state"; | ||
import { logger, hasWindow, isFunction } from "@rpldy/shared"; | ||
import createState from "@rpldy/simple-state"; | ||
import { SENDER_EVENTS, UPLOADER_EVENTS } from "../consts"; | ||
import processQueueNext from "./processQueueNext"; | ||
import * as abortMethods from "./abort"; | ||
import { detachRecycledFromPreviousBatch } from "./batchHelpers"; | ||
export default (function (options, cancellable, trigger, sender, uploaderId) { | ||
import { detachRecycledFromPreviousBatch, getBatchFromState } from "./batchHelpers"; | ||
var createUploaderQueue = function (options, trigger, cancellable, sender, uploaderId) { | ||
var _createState = createState({ | ||
@@ -40,31 +33,11 @@ itemQueue: [], | ||
var unWrapAndTrigger = function unWrapAndTrigger(name) { | ||
for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
data[_key - 1] = arguments[_key]; | ||
} | ||
return trigger.apply(void 0, [name].concat(_toConsumableArray(data.map(function (d) { | ||
return unwrap(d); | ||
})))); | ||
}; | ||
var unWrapAndCancellable = function unWrapAndCancellable(name) { | ||
for (var _len2 = arguments.length, data = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { | ||
data[_key2 - 1] = arguments[_key2]; | ||
} | ||
return cancellable.apply(void 0, [name].concat(_toConsumableArray(data.map(function (d) { | ||
return unwrap(d); | ||
})))); | ||
}; | ||
var getState = function getState() { | ||
var getState = function () { | ||
return state; | ||
}; | ||
var updateState = function updateState(updater) { | ||
var updateState = function (updater) { | ||
update(updater); | ||
}; | ||
var add = function add(item) { | ||
var add = function (item) { | ||
if (state.items[item.id] && !item.recycled) { | ||
@@ -84,14 +57,3 @@ throw new Error("Uploader queue conflict - item ".concat(item.id, " already exists")); | ||
var uploadBatch = function uploadBatch(batch, batchOptions) { | ||
updateState(function (state) { | ||
state.batches[batch.id] = { | ||
batch: batch, | ||
batchOptions: batchOptions | ||
}; | ||
}); | ||
batch.items.forEach(add); | ||
processQueueNext(queueState); | ||
}; | ||
var handleItemProgress = function handleItemProgress(item, completed, loaded) { | ||
var handleItemProgress = function (item, completed, loaded) { | ||
if (state.items[item.id]) { | ||
@@ -104,3 +66,3 @@ updateState(function (state) { | ||
unWrapAndTrigger(UPLOADER_EVENTS.ITEM_PROGRESS, getState().items[item.id]); | ||
trigger(UPLOADER_EVENTS.ITEM_PROGRESS, getState().items[item.id]); | ||
} | ||
@@ -132,3 +94,3 @@ }; | ||
}); | ||
unWrapAndTrigger(UPLOADER_EVENTS.BATCH_PROGRESS, state.batches[batch.id].batch); | ||
trigger(UPLOADER_EVENTS.BATCH_PROGRESS, state.batches[batch.id].batch); | ||
} | ||
@@ -145,4 +107,15 @@ }); | ||
updateState: updateState, | ||
trigger: unWrapAndTrigger, | ||
cancellable: unWrapAndCancellable, | ||
trigger: trigger, | ||
runCancellable: function runCancellable(name) { | ||
if (!isFunction(cancellable)) { | ||
//for flow :( | ||
throw new Error("cancellable is of wrong type"); | ||
} | ||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
return cancellable.apply(void 0, [name].concat(args)); | ||
}, | ||
sender: sender, | ||
@@ -152,26 +125,41 @@ handleItemProgress: handleItemProgress | ||
if (hasWindow && logger.isDebugOn()) { | ||
if (hasWindow() && logger.isDebugOn()) { | ||
window["__rpldy_".concat(uploaderId, "_queue_state")] = queueState; | ||
} | ||
var abortItem = function abortItem(id) { | ||
return abortMethods.abortItem(queueState, id, processQueueNext); | ||
}; | ||
var abortBatch = function abortBatch(id) { | ||
abortMethods.abortBatch(queueState, id, processQueueNext); | ||
}; | ||
var abortAll = function abortAll() { | ||
abortMethods.abortAll(queueState, processQueueNext); | ||
}; | ||
return { | ||
updateState: updateState, | ||
getState: queueState.getState, | ||
uploadBatch: uploadBatch, | ||
abortItem: abortItem, | ||
abortBatch: abortBatch, | ||
abortAll: abortAll | ||
runCancellable: queueState.runCancellable, | ||
uploadBatch: function uploadBatch(batch, batchOptions) { | ||
if (batchOptions) { | ||
updateState(function (state) { | ||
state.batches[batch.id].batchOptions = batchOptions; | ||
}); | ||
} | ||
batch.items.forEach(add); | ||
processQueueNext(queueState); | ||
}, | ||
addBatch: function addBatch(batch, batchOptions) { | ||
updateState(function (state) { | ||
state.batches[batch.id] = { | ||
batch: batch, | ||
batchOptions: batchOptions | ||
}; | ||
}); | ||
return getBatchFromState(state, batch.id); | ||
}, | ||
abortItem: function abortItem(id) { | ||
return abortMethods.abortItem(queueState, id, processQueueNext); | ||
}, | ||
abortBatch: function abortBatch(id) { | ||
abortMethods.abortBatch(queueState, id, processQueueNext); | ||
}, | ||
abortAll: function abortAll() { | ||
abortMethods.abortAll(queueState, processQueueNext); | ||
} | ||
}; | ||
}); | ||
}; | ||
export default createUploaderQueue; |
@@ -1,7 +0,6 @@ | ||
import addLife from "@rpldy/life-events"; | ||
import addLife, { createLifePack } from "@rpldy/life-events"; | ||
import { BATCH_STATES, invariant, logger, triggerCancellable, devFreeze, merge, clone } from "@rpldy/shared"; | ||
import createBatch from "./batch"; | ||
import getProcessor from "./processor"; | ||
import { UPLOADER_EVENTS } from "./consts"; | ||
import { getMandatoryOptions } from "./utils"; | ||
import { getMandatoryOptions, deepProxyUnwrap } from "./utils"; | ||
var EVENT_NAMES = Object.values(UPLOADER_EVENTS); | ||
@@ -23,3 +22,3 @@ var EXT_OUTSIDE_ENHANCER_TIME = "Uploady - uploader extensions can only be registered by enhancers", | ||
var update = function update(updateOptions) { | ||
var update = function (updateOptions) { | ||
//TODO: updating concurrent and maxConcurrent means we need to update the processor - not supported yet! | ||
@@ -31,10 +30,9 @@ uploaderOptions = merge({}, uploaderOptions, updateOptions); //need deep merge for destination | ||
var add = function add(files, addOptions) { | ||
var add = function (files, addOptions) { | ||
var processOptions = merge({}, uploaderOptions, addOptions); | ||
var batch = createBatch(files, uploader.id, processOptions); | ||
var batch = processor.addNewBatch(files, uploader.id, processOptions); | ||
var resultP; | ||
if (batch.items.length) { | ||
// $FlowFixMe - https://github.com/facebook/flow/issues/8215 | ||
resultP = cancellable(UPLOADER_EVENTS.BATCH_ADD, batch, processOptions).then(function (isCancelled) { | ||
resultP = processor.runCancellable(UPLOADER_EVENTS.BATCH_ADD, batch, processOptions).then(function (isCancelled) { | ||
if (!isCancelled) { | ||
@@ -44,4 +42,8 @@ logger.debugLog("uploady.uploader [".concat(uploader.id, "]: new items added - auto upload =\n ").concat(String(processOptions.autoUpload)), batch.items); | ||
if (processOptions.autoUpload) { | ||
processor.process(batch, processOptions); | ||
processor.process(batch); | ||
} else { | ||
if (processOptions.clearPendingOnAdd) { | ||
clearPending(); | ||
} | ||
pendingBatches.push({ | ||
@@ -54,3 +56,3 @@ batch: batch, | ||
batch.state = BATCH_STATES.CANCELLED; | ||
trigger(UPLOADER_EVENTS.BATCH_CANCEL, batch); | ||
triggerWithUnwrap(UPLOADER_EVENTS.BATCH_CANCEL, batch); | ||
} | ||
@@ -65,15 +67,3 @@ }); | ||
var abort = function abort(id) { | ||
processor.abort(id); | ||
}; | ||
var abortBatch = function abortBatch(id) { | ||
processor.abortBatch(id); | ||
}; | ||
var getPending = function getPending() { | ||
return pendingBatches.slice(); | ||
}; | ||
var clearPending = function clearPending() { | ||
var clearPending = function () { | ||
pendingBatches.splice(0); | ||
@@ -86,15 +76,7 @@ }; | ||
var upload = function upload() { | ||
pendingBatches.splice(0).forEach(function (_ref) { | ||
var batch = _ref.batch, | ||
uploadOptions = _ref.uploadOptions; | ||
return processor.process(batch, uploadOptions); | ||
}); | ||
}; | ||
var getOptions = function getOptions() { | ||
var getOptions = function () { | ||
return clone(uploaderOptions); | ||
}; | ||
var registerExtension = function registerExtension(name, methods) { | ||
var registerExtension = function (name, methods) { | ||
invariant(enhancerTime, EXT_OUTSIDE_ENHANCER_TIME); | ||
@@ -106,6 +88,2 @@ invariant(!extensions[name], EXT_ALREADY_EXISTS, name); | ||
var getExtension = function getExtension(name) { | ||
return extensions[name]; | ||
}; | ||
var _addLife = addLife({ | ||
@@ -115,10 +93,24 @@ id: uploaderId, | ||
add: add, | ||
upload: upload, | ||
abort: abort, | ||
abortBatch: abortBatch, | ||
upload: function upload(uploadOptions) { | ||
pendingBatches.splice(0).forEach(function (_ref) { | ||
var batch = _ref.batch, | ||
batchOptions = _ref.uploadOptions; | ||
return processor.process(batch, merge({}, batchOptions, uploadOptions)); | ||
}); | ||
}, | ||
abort: function abort(id) { | ||
processor.abort(id); | ||
}, | ||
abortBatch: function abortBatch(id) { | ||
processor.abortBatch(id); | ||
}, | ||
getOptions: getOptions, | ||
getPending: getPending, | ||
getPending: function getPending() { | ||
return pendingBatches.slice(); | ||
}, | ||
clearPending: clearPending, | ||
registerExtension: registerExtension, | ||
getExtension: getExtension | ||
getExtension: function getExtension(name) { | ||
return extensions[name]; | ||
} | ||
}, EVENT_NAMES, { | ||
@@ -130,8 +122,24 @@ canAddEvents: false, | ||
uploader = _addLife.target; | ||
/** | ||
* ensures that data being exposed to client-land isnt a proxy, only pojos | ||
*/ | ||
var cancellable = triggerCancellable(trigger); | ||
var triggerWithUnwrap = function (name) { | ||
for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
data[_key - 1] = arguments[_key]; | ||
} | ||
//delays unwrap to the very last time on trigger. Will only unwrap if there are listeners | ||
var lp = createLifePack(function () { | ||
return data.map(deepProxyUnwrap); | ||
}); | ||
return trigger(name, lp); | ||
}; | ||
var cancellable = triggerCancellable(triggerWithUnwrap); | ||
if (uploaderOptions.enhancer) { | ||
enhancerTime = true; | ||
var enhanced = uploaderOptions.enhancer(uploader, trigger); | ||
var enhanced = uploaderOptions.enhancer(uploader, triggerWithUnwrap); | ||
enhancerTime = false; //graceful handling for enhancer forgetting to return uploader | ||
@@ -142,4 +150,4 @@ | ||
var processor = getProcessor(trigger, uploaderOptions, uploader.id); | ||
var processor = getProcessor(triggerWithUnwrap, cancellable, uploaderOptions, uploader.id); | ||
return devFreeze(uploader); | ||
}); |
@@ -7,7 +7,8 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
import { hasWindow, isProduction } from "@rpldy/shared"; | ||
import { unwrap, isProxiable, isProxy } from "@rpldy/simple-state"; | ||
import { DEFAULT_OPTIONS, DEFAULT_PARAM_NAME } from "./defaults"; | ||
import { hasWindow } from "@rpldy/shared"; | ||
var FILE_LIST_SUPPORT = hasWindow && "FileList" in window; | ||
var FILE_LIST_SUPPORT = hasWindow() && "FileList" in window; | ||
var getMandatoryDestination = function getMandatoryDestination(dest) { | ||
var getMandatoryDestination = function (dest) { | ||
return _objectSpread({ | ||
@@ -19,3 +20,3 @@ filesParamName: DEFAULT_PARAM_NAME, | ||
var getMandatoryOptions = function getMandatoryOptions(options) { | ||
var getMandatoryOptions = function (options) { | ||
return _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options), {}, { | ||
@@ -26,3 +27,3 @@ destination: options && options.destination ? getMandatoryDestination(options.destination) : null | ||
var getIsFileList = function getIsFileList(files) { | ||
var getIsFileList = function (files) { | ||
return (//in case files list was created in a different context(window) need to check toString | ||
@@ -32,3 +33,28 @@ FILE_LIST_SUPPORT && files instanceof FileList || files.toString() === "[object FileList]" | ||
}; | ||
/*** | ||
* will unwrap object from proxy | ||
* if obj itself isnt a proxy, will look for a proxy max 2 levels deep | ||
*/ | ||
export { getMandatoryOptions, getIsFileList }; | ||
var deepProxyUnwrap = function (obj) { | ||
var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; | ||
var result = obj; | ||
if (!isProduction()) { | ||
if (level < 3 && isProxy(obj)) { | ||
result = unwrap(obj); | ||
} else if (level < 3 && isProxiable(obj)) { | ||
result = Array.isArray(obj) ? Object.keys(obj).map(function (key) { | ||
return deepProxyUnwrap(obj[key]); | ||
}) : Object.keys(obj).reduce(function (res, key) { | ||
res[key] = deepProxyUnwrap(obj[key], level + 1); | ||
return res; | ||
}, {}); | ||
} | ||
} | ||
return result; | ||
}; | ||
export { getMandatoryOptions, getIsFileList, deepProxyUnwrap }; |
{ | ||
"version": "0.6.0", | ||
"version": "0.7.0", | ||
"name": "@rpldy/uploader", | ||
@@ -27,6 +27,6 @@ "description": "the processing and queuing engine for react-uploady", | ||
"dependencies": { | ||
"@rpldy/life-events": "^0.6.0", | ||
"@rpldy/sender": "^0.6.0", | ||
"@rpldy/shared": "^0.6.0", | ||
"@rpldy/simple-state": "^0.6.0" | ||
"@rpldy/life-events": "^0.7.0", | ||
"@rpldy/sender": "^0.7.0", | ||
"@rpldy/shared": "^0.7.0", | ||
"@rpldy/simple-state": "^0.7.0" | ||
}, | ||
@@ -39,3 +39,3 @@ "devDependencies": { | ||
}, | ||
"gitHead": "43de735c426078647a9768caa733ba6cfd190d32" | ||
"gitHead": "5bd0ebc140b45e44b168511f501b9f22628abd56" | ||
} |
@@ -38,3 +38,3 @@ import { | ||
add: UploadAddMethod; | ||
upload: () => void; | ||
upload: (uploadOptions?: UploadOptions) => void; | ||
abort: (id?: string) => void; | ||
@@ -41,0 +41,0 @@ abortBatch: (id: string) => void; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
198230
2519
0
+ Added@rpldy/life-events@0.7.4(transitive)
+ Added@rpldy/sender@0.7.4(transitive)
+ Added@rpldy/shared@0.7.4(transitive)
+ Added@rpldy/simple-state@0.7.4(transitive)
- Removed@rpldy/life-events@0.6.0(transitive)
- Removed@rpldy/sender@0.6.0(transitive)
- Removed@rpldy/shared@0.6.0(transitive)
- Removed@rpldy/simple-state@0.6.0(transitive)
Updated@rpldy/life-events@^0.7.0
Updated@rpldy/sender@^0.7.0
Updated@rpldy/shared@^0.7.0
Updated@rpldy/simple-state@^0.7.0