UNPKG

@rpldy/chunked-sender

Version:

adds chunked upload capabilities on top of the regular XHR uploads

24 lines 750 B
import ChunkedSendError from "./ChunkedSendError"; const getChunks = (item, options, startByte = 0) => { const { chunkSize } = options; const size = startByte ? item.file.size - startByte : item.file.size; if (size <= 0) { throw new ChunkedSendError(`start byte ${startByte} is invalid. File size: ${item.file.size}`); } const count = size <= chunkSize ? 1 : Math.ceil(size / chunkSize); return new Array(count).fill(null).map((n, index) => { const start = chunkSize * index + (startByte || 0); return { id: `${item.id}_chunk-${index}`, start, end: Math.min(start + chunkSize, item.file.size), data: null, attempt: 0, uploaded: 0, index }; }); }; export default getChunks;