lazy-js-utils
Version:
A collection of lazy-loaded JavaScript utilities for efficient development
31 lines (29 loc) • 811 B
JavaScript
import SparkMD5 from "spark-md5";
//#region src/perf/createChunk.ts
const hashMap = new Map();
function createChunk(file, index, chunkSize) {
return new Promise((resolve) => {
const start = index * chunkSize;
const end = start + chunkSize;
const spark = new SparkMD5.ArrayBuffer();
const fileReader = new FileReader();
fileReader.onload = (e) => {
var _e$target;
const fileBuffer = (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.result;
let hash;
if (!hashMap.has(fileBuffer)) {
spark.append(fileBuffer);
hash = spark.end();
} else hash = hashMap.get(fileBuffer);
resolve({
start,
end,
index,
hash
});
};
fileReader.readAsArrayBuffer(file.slice(start, end));
});
}
//#endregion
export { createChunk as createChunk$1 };