/* eslint-disable @typescript-eslint/prefer-ts-expect-error */ import { createApp, h, ref, watchEffect } from 'vue' import { type OutputModes, Repl, useStore, useVueImportMap } from '../src' // @ts-ignore import MonacoEditor from '../src/editor/MonacoEditor.vue' // @ts-ignore import CodeMirrorEditor from '../src/editor/CodeMirrorEditor.vue' const window = globalThis.window as any window.process = { env: {} } const App = { setup() { const query = new URLSearchParams(location.search) const { importMap: builtinImportMap, vueVersion } = useVueImportMap({ runtimeDev: import.meta.env.PROD ? undefined : `${location.origin}/src/vue-dev-proxy`, serverRenderer: import.meta.env.PROD ? undefined : `${location.origin}/src/vue-server-renderer-dev-proxy`, }) const store = (window.store = useStore( { builtinImportMap, vueVersion, showOutput: ref(query.has('so')), outputMode: ref((query.get('om') as OutputModes) || 'preview'), }, location.hash, )) console.info(store) watchEffect(() => history.replaceState({}, '', store.serialize())) // setTimeout(() => { // store.setFiles( // { // 'src/index.html': '