import siteOrigin from '../utils/siteOrigin';

import Worker from "./my.worker";

const worker = new (Worker)();

let killTimer: ReturnType<typeof setTimeout> | null = null;

window.addEventListener('message', (event) => {
  killTimer = setTimeout(
    () => {
      console.log('Worker timed out. Terminating.');
      worker.terminate();
    },
    // ten seconds for a real run. 1 second for a test run.
    event.data.isTest ? 1000 : 10000
  );
  worker.postMessage(event.data);
});

worker.addEventListener('message', (event: MessageEvent) => {
  window.parent.postMessage(event.data, siteOrigin);
  killTimer && clearTimeout(killTimer);
});
