import { bufToImageUrl, imageToArray } from "."; const worker = new Worker("build/workers/ai-worker.js"); let i = 0; let cb = {}; worker.addEventListener("message", ev => { if (ev.data.i in cb) { cb[ev.data.i](ev.data.result); delete cb[ev.data.i] delete ev.data.i; } }) const analyze = (img: Image) => new Promise(async (res, rej) => { i++; const _i = i; const pixels = await imageToArray(img); worker.postMessage({ i: _i, pixels, width: img.width, height: img.height }); cb[_i] = res; }); export default { analyze }