@rpldy/chunked-sender
Version:
adds chunked upload capabilities on top of the regular XHR uploads
31 lines (30 loc) • 997 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 getChunks = (item, options, startByte = 0) => {
const {
chunkSize
} = options;
const size = startByte ? item.file.size - startByte : item.file.size;
if (size <= 0) {
throw new _ChunkedSendError.default(`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
};
});
};
var _default = exports.default = getChunks;