lazy-js-utils
Version:
A collection of lazy-loaded JavaScript utilities for efficient development
34 lines (30 loc) • 1.07 kB
JavaScript
Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/perf/createChunk.ts
var _sparkmd5 = require('spark-md5'); var _sparkmd52 = _interopRequireDefault(_sparkmd5);
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 _sparkmd52.default.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));
});
}
exports.createChunk = createChunk;
;