| 12345678910111213141516171819 |
- // web-worker
- self.importScripts('spark-md5.min.js')
- self.onmessage = async e => {
- const { chunks } = e.data
- calculate(chunks)
- }
- async function calculate (chunks) {
- const spark = new self.SparkMD5.ArrayBuffer()
- const total = chunks.length
- const appendToSpark = blob => blob.arrayBuffer().then(arrayBuffer => spark.append(arrayBuffer))
- self.postMessage({ index: 0, total })
- for (let i = 0; i < total; i++) {
- await appendToSpark(chunks[i].raw)
- self.postMessage({ index: i, total })
- }
- self.postMessage({ hash: spark.end() })
- }
|