whale-plus
Version:
A Component Library for Vue 3
55 lines (48 loc) • 1.59 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var SparkMD5 = require('spark-md5');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var SparkMD5__default = /*#__PURE__*/_interopDefaultLegacy(SparkMD5);
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__default["default"].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__default["default"].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);
});
}
exports.calcChunkHash = calcChunkHash;
exports.calcChunkHashAndSparkResult = calcChunkHashAndSparkResult;
exports.createChunk = createChunk;
//# sourceMappingURL=FileChunk.js.map