import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' import packageJson from './package.json' assert { type: 'json' } // https://vite.dev/config/ export default defineConfig(() => { const localRpcProxyTarget = process.env.VITE_LOCAL_RPC_PROXY_TARGET const localGraphqlProxyTarget = process.env.VITE_LOCAL_GRAPHQL_PROXY_TARGET ?? 'http://127.0.0.1:42069' const localTxnProxyTarget = process.env.VITE_LOCAL_TXN_PROXY_TARGET ?? 'http://127.0.0.1:43069' const appVersion = (packageJson as { version?: string }).version ?? 'dev' return { // base: "/HarbergPublic/", plugins: [ vue(), vueDevTools(), ], define: { __APP_VERSION__: JSON.stringify(appVersion), }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), 'kraiken-lib': fileURLToPath(new URL('../kraiken-lib/src', import.meta.url)), }, }, server: { proxy: localRpcProxyTarget || localGraphqlProxyTarget || localTxnProxyTarget ? { ...(localRpcProxyTarget ? { '/api/rpc': { target: localRpcProxyTarget, changeOrigin: true, secure: false, rewrite: (path: string) => { const rewritten = path.replace(/^\/api\/rpc/, '') return rewritten.length === 0 ? '/' : rewritten }, }, } : {}), ...(localGraphqlProxyTarget ? { '/api/graphql': { target: localGraphqlProxyTarget, changeOrigin: true, secure: false, rewrite: (path: string) => path.replace(/^\/api\/graphql/, '/graphql'), }, } : {}), ...(localTxnProxyTarget ? { '/api/txn': { target: localTxnProxyTarget, changeOrigin: true, secure: false, rewrite: (path: string) => { const rewritten = path.replace(/^\/api\/txn/, '') return rewritten.length === 0 ? '/' : rewritten }, }, } : {}), } : undefined, }, } })