github.com/0chain/gosdk@v1.17.11/wasmsdk/demo/md5worker.js (about)

     1  importScripts('https://rawgit.com/satazor/SparkMD5/master/spark-md5.min.js');
     2  
     3  self.addEventListener('message', (e) => {
     4      const file = e.data;
     5      const chunkSize = 128 * 1024;// 128KB
     6      //create fileReaderSync
     7      const totalParts = Math.ceil(file.size / chunkSize);
     8      const fileReaderSync = new FileReaderSync();
     9      const spark = new self.SparkMD5.ArrayBuffer();
    10      for (let i = 0; i < totalParts; i++) {
    11          const start = i * chunkSize;
    12          const end = Math.min(file.size, start + chunkSize);
    13          const buffer = fileReaderSync.readAsArrayBuffer(file.slice(start, end));
    14  
    15          spark.append(buffer);
    16      }
    17      const hash = spark.end();
    18      self.postMessage(hash);
    19  });