import { name, description } from '../package.json' import createElement from './utils/createElement' import { WorkerAdapter } from './service/adapter' import { injectCounter } from './service/counter' import './style.css' void (async () => { // Use the proxy object const worker = new Worker(new URL('./worker.ts', import.meta.url), { type: 'module' }) const counter = injectCounter(new WorkerAdapter(worker, 'web-worker-injector')) const initValue = await counter.getValue() document.querySelector('#app')!.appendChild( createElement(`

${name}

${description}

${initValue}

WebWorker Value: ${initValue}

`) ) document.querySelector('#decrement')!.addEventListener('click', async () => { await counter.decrement() }) document.querySelector('#increment')!.addEventListener('click', async () => { await counter.increment() }) counter.onChange((value) => { document.querySelector('#value')!.textContent = value.toString() document.querySelector('#worker-value')!.textContent = `WebWorker Value: ${value}` }) })().catch(console.error)