UNPKG

js-uploader

Version:
4 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = "\n(function () {\n var $this = typeof window == 'undefined' ? self : window\n $this.onmessage = function (e) {\n console.log(e)\n var data = e.data\n if (!data) {\n return\n }\n $this.shouldAbort = data.action==\"abort\"\n if($this.shouldAbort){\n return\n }\n\n console.time('computehash-worker')\n \n var file = data\n var currentChunk = 0\n var blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice\n var chunkSize = 4194304 // Read in chunks of 4MB\n var isArrayBuffer = file instanceof ArrayBuffer\n var fileSize = !isArrayBuffer ? file.size : file.byteLength\n var chunks = Math.ceil(fileSize / chunkSize)\n var fileReader\n var spark = new $this.SparkMD5.ArrayBuffer()\n var calc = function (data) {\n console.log('read chunk nr', currentChunk + 1, 'of', chunks)\n spark.append(data)\n currentChunk++\n if (currentChunk < chunks) {\n loadNext()\n } else {\n console.log('finished loading')\n var md5 = spark.end()\n console.info('computed hash', md5)\n $this.postMessage(md5)\n console.timeEnd('computehash-worker')\n }\n }\n if (!isArrayBuffer) {\n fileReader = new FileReader()\n fileReader.onload = function (e) {\n calc(e.target.result)\n }\n fileReader.onerror = function (e) {\n console.warn('oops, something went wrong.', e)\n }\n }\n var checkAbort = function(){\n if($this.shouldAbort){\n fileReader.abort()\n spark.destroy()\n fileReader=spark=data=file=null\n return true\n }\n }\n var loadNext = function () {\n if(checkAbort()){\n return\n }\n var start = currentChunk * chunkSize\n var end = start + chunkSize >= fileSize ? fileSize : start + chunkSize\n if (isArrayBuffer) {\n calc(file.slice(start, end))\n } else {\n fileReader.readAsArrayBuffer(blobSlice.call(file, start, end))\n }\n }\n loadNext()\n }\n})()\n"; //# sourceMappingURL=md5WorkerScript.js.map