@rpldy/chunked-sender
Version:
adds chunked upload capabilities on top of the regular XHR uploads
26 lines (25 loc) • 894 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _ChunkedSendError = _interopRequireDefault(require("./ChunkedSendError"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const getChunksToSend = chunkedState => {
const state = chunkedState.getState();
const chunks = [],
inProgressIds = Object.keys(state.requests),
parallel = state.parallel || 1;
for (let i = 0; i < state.chunks.length && inProgressIds.length + chunks.length < parallel; i++) {
const chunk = state.chunks[i];
if (!inProgressIds.includes(chunk.id)) {
if (!chunk.attempt || chunk.attempt < state.retries) {
chunks.push(chunk);
} else {
throw new _ChunkedSendError.default("chunk failure");
}
}
}
return chunks;
};
var _default = exports.default = getChunksToSend;