devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
50 lines (49 loc) • 1.52 kB
JavaScript
/**
* DevExtreme (cjs/__internal/ui/file_uploader/file_blob_reader.js)
* Version: 25.2.3
* Build date: Fri Dec 12 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.FileBlobReader = void 0;
class FileBlobReader {
constructor(file, chunkSize) {
this.file = file;
this.chunkSize = chunkSize;
this.index = 0
}
read() {
if (!this.file) {
return null
}
const result = this.createBlobResult(this.file, this.index, this.chunkSize);
if (result.isCompleted) {
this.file = null
}
this.index += 1;
return result
}
createBlobResult(file, index, chunkSize) {
const currentPosition = index * chunkSize;
return {
blob: this.sliceFile(file, currentPosition, chunkSize),
index: index,
isCompleted: currentPosition + chunkSize >= file.size
}
}
sliceFile(file, startPos, length) {
if (file.slice) {
return file.slice(startPos, startPos + length)
}
if ("webkitSlice" in file && "function" === typeof file.webkitSlice) {
return file.webkitSlice(startPos, startPos + length)
}
return null
}
}
exports.FileBlobReader = FileBlobReader;