{"version":3,"file":"utils/worker/utils.mjs","sources":["../../../src/utils/worker/utils.ts"],"sourcesContent":["import {\n  NativeWorkerMessage,\n  UserWorkerEventHandler,\n  WorkerMessage,\n} from './types';\n\nexport function sendMessageInClient<T>(msg: WorkerMessage<T>, worker: Worker) {\n  return worker.postMessage(msg);\n}\n\nexport function sendMessageInWorker<T>(\n  receivedMsg: NativeWorkerMessage,\n  response: T,\n) {\n  const msg: WorkerMessage<T> = {\n    id: receivedMsg.data.id,\n    data: response,\n  };\n  return postMessage(msg);\n}\n\nexport function handleMessageInWorker<T, R>({\n  handler,\n}: {\n  workerName: string;\n  handler: UserWorkerEventHandler<T, R>;\n}) {\n  self.onmessage = (e: NativeWorkerMessage<T>) => {\n    const res = handler(e.data.data);\n    // const prefix = `[${workerName} worker]`;\n    // const start = Date.now();\n\n    if (res instanceof Promise) {\n      res.then((r) => {\n        // console.log(`${prefix}[async] duration: ${Date.now() - start}ms`);\n        sendMessageInWorker(e, r);\n      });\n    } else {\n      sendMessageInWorker(e, res);\n      // console.log(`${prefix}[sync] duration: ${Date.now() - start}ms`);\n    }\n  };\n}\n"],"names":["sendMessageInClient","msg","worker","sendMessageInWorker","receivedMsg","response","postMessage","handleMessageInWorker","handler","self","e","res","Promise","r"],"mappings":"AAMO,SAASA,oBAAuBC,GAAqB,EAAEC,MAAc;IAC1E,OAAOA,OAAO,WAAW,CAACD;AAC5B;AAEO,SAASE,oBACdC,WAAgC,EAChCC,QAAW;IAEX,MAAMJ,MAAwB;QAC5B,IAAIG,YAAY,IAAI,CAAC,EAAE;QACvB,MAAMC;IACR;IACA,OAAOC,YAAYL;AACrB;AAEO,SAASM,sBAA4B,EAC1CC,OAAO,EAIR;IACCC,KAAK,SAAS,GAAG,CAACC;QAChB,MAAMC,MAAMH,QAAQE,EAAE,IAAI,CAAC,IAAI;QAI/B,IAAIC,eAAeC,SACjBD,IAAI,IAAI,CAAC,CAACE;YAERV,oBAAoBO,GAAGG;QACzB;aAEAV,oBAAoBO,GAAGC;IAG3B;AACF"}