lazy-js-utils
Version:
A collection of lazy-loaded JavaScript utilities for efficient development
34 lines (32 loc) • 823 B
JavaScript
// src/perf/createChunk.ts
import SparkMD5 from "spark-md5";
var hashMap = /* @__PURE__ */ 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 _a;
const fileBuffer = (_a = e.target) == null ? void 0 : _a.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));
});
}
export {
createChunk
};