UNPKG

whale-plus

Version:

A Component Library for Vue 3

38 lines (33 loc) 1.09 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var ChunkSplitor = require('../ChunkSplitor.js'); const import_meta = {}; class MultiThreadSplitor extends ChunkSplitor.ChunkSplitor { constructor() { super(...arguments); this.workers = Array.from({ length: navigator.hardwareConcurrency || 4 }).fill(0).map( () => new Worker(new URL("./SplitWorker.ts", import_meta.url), { type: "module" }) ); } calcHash(chunks, emitter) { const workerSize = Math.ceil(chunks.length / this.workers.length); this.workers.forEach((worker, index) => { const start = index * workerSize; const end = Math.min((index + 1) * workerSize, chunks.length); const workerChunks = chunks.slice(start, end); worker.postMessage(workerChunks); worker.onmessage = (e) => { emitter.emit("chunks", e.data); }; }); } dispose() { this.workers.forEach((worker) => worker.terminate()); } } exports.MultiThreadSplitor = MultiThreadSplitor; //# sourceMappingURL=MultiThreadSplitor.js.map