whale-plus
Version:
A Component Library for Vue 3
45 lines (42 loc) • 1.21 kB
JavaScript
import SparkMD5 from 'spark-md5';
function createChunk(file, index, chunkSize) {
const start = index * chunkSize;
const end = Math.min(start + chunkSize, file.size);
const blob = file.slice(start, end);
return {
blob,
start,
end,
hash: "",
index
};
}
function calcChunkHash(chunk) {
return new Promise((resolve) => {
const spark = new SparkMD5.ArrayBuffer();
const fileReader = new FileReader();
fileReader.onload = (e) => {
var _a;
spark.append((_a = e.target) == null ? void 0 : _a.result);
resolve(spark.end());
};
fileReader.readAsArrayBuffer(chunk.blob);
});
}
function calcChunkHashAndSparkResult(chunk) {
return new Promise((resolve) => {
const spark = new SparkMD5.ArrayBuffer();
const fileReader = new FileReader();
fileReader.onload = (e) => {
var _a, _b;
spark.append((_a = e.target) == null ? void 0 : _a.result);
resolve({
sparkResult: (_b = e.target) == null ? void 0 : _b.result,
hash: spark.end()
});
};
fileReader.readAsArrayBuffer(chunk.blob);
});
}
export { calcChunkHash, calcChunkHashAndSparkResult, createChunk };
//# sourceMappingURL=FileChunk.mjs.map