import { name, description } from '../../package.json' import './style.css' import createElement from '../utils/createElement' import { defineProxy } from 'comctx' import { WindowAdapter } from '../service/adapter' import type Counter from '../service/counter' void (async () => { const [, injectCounter] = defineProxy(() => ({}) as Counter, { namespace: '__iframe-example__', debug: import.meta.env.DEV }) // Use the proxy object const counter = injectCounter(new WindowAdapter(window, 'iframe-injector')) const initValue = await counter.getValue() document.querySelector('#app')!.insertBefore( createElement(`

${name}

${description}

${initValue}
`), document.querySelector('#iframe')! ) 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() }) })().catch(console.error)