import { name, description } from '../package.json' import './style.css' import createElement from './utils/createElement' import { InjectAdapter } from './service/adapter' import { injectCounter } from './service/counter' void (async () => { // Use the proxy object const counter = injectCounter( new InjectAdapter(import.meta.env.MODE === 'production' ? '/service-worker.js' : '/dev-sw.js?dev-sw') ) const initValue = await counter.getValue() document.querySelector('#app')!.appendChild( createElement(`

${name}

${description}

${initValue}

ServiceWorker 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('#background-value')!.textContent = `ServiceWorker Value: ${value}` }) })().catch(console.error)