import { defineConfig } from "vite"; import { svelte } from "@sveltejs/vite-plugin-svelte"; import wasm from "vite-plugin-wasm"; import topLevelAwait from "vite-plugin-top-level-await"; // https://github.com/automerge/automerge-repo/blob/9b5aa0788996c64e7c11c9f8bc00a55b38afb7dd/packages/automerge-repo-demo-counter-svelte/vite.config.ts // https://vitejs.dev/config/ export default defineConfig({ plugins: [wasm(), topLevelAwait(), svelte()], worker: { format: "es", plugins: [wasm(), topLevelAwait()], }, optimizeDeps: { // This is necessary because otherwise `vite dev` includes two separate // versions of the JS wrapper. This causes problems because the JS // wrapper has a module level variable to track JS side heap // allocations, and initializing this twice causes horrible breakage exclude: [ "@automerge/automerge-wasm", "@automerge/automerge-wasm/bundler/bindgen_bg.wasm", "@syntect/wasm", ], }, });