@rpldy/chunked-sender
Version:
adds chunked upload capabilities on top of the regular XHR uploads
19 lines • 647 B
JavaScript
import ChunkedSendError from "./ChunkedSendError";
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("chunk failure");
}
}
}
return chunks;
};
export default getChunksToSend;