import { browser } from '#imports' import { defineProxy } from 'comctx' import { InjectAdapter as BrowserRuntimeInjectAdapter } from '@/service/adapter/browserRuntime' import type { Counter } from '@/service/counter' import createElement from '@/utils/createElement' void (async () => { const [, injectBackgroundCounter] = defineProxy(() => ({}) as Counter, { namespace: browser.runtime.id, debug: import.meta.env.DEV }) // Use the proxy object const counter = injectBackgroundCounter(new BrowserRuntimeInjectAdapter('popup')) const initValue = await counter.getValue() document.querySelector('#root')!.replaceWith( createElement(` `) ) document.querySelector('#decrement')!.addEventListener('click', async () => { await counter.decrement() }) document.querySelector('#increment')!.addEventListener('click', async () => { await counter.increment() }) counter.onChange((value) => { console.log('popup-page:', value) document.querySelector('#value')!.textContent = value.toString() document.querySelector('#background-value')!.textContent = `Background Value: ${value}` }) })().catch(console.error)