107 lines
3.4 KiB
TypeScript
107 lines
3.4 KiB
TypeScript
/// <reference types="vitest" />
|
|
import path from 'path';
|
|
|
|
import react from '@vitejs/plugin-react';
|
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
import { loadEnv } from 'vite';
|
|
import { nodePolyfills } from 'vite-plugin-node-polyfills';
|
|
import wasm from 'vite-plugin-wasm';
|
|
import { defineConfig } from 'vitest/config';
|
|
|
|
// https://vitejs.dev/config/
|
|
export default defineConfig(({ mode }) => {
|
|
process.env = { ...process.env, ...loadEnv(mode, process.cwd()) };
|
|
const base = process.env.VITE_BASENAME;
|
|
return {
|
|
base: base?.length != 0 ? base : '/',
|
|
build: {
|
|
sourcemap: true,
|
|
chunkSizeWarningLimit: Infinity,
|
|
target: 'ESNEXT',
|
|
minify: 'esbuild',
|
|
rollupOptions: {
|
|
treeshake: true,
|
|
output: {
|
|
manualChunks: {
|
|
react: ['react', 'react-dom', 'react-router-dom'],
|
|
cms: ['contract.cm'],
|
|
},
|
|
},
|
|
onwarn(warning, warn) {
|
|
if (warning.code === 'INVALID_ANNOTATION') {
|
|
// Suppress if the message contains "__PURE__"
|
|
if (warning.message.includes('__PURE__')) {
|
|
return;
|
|
}
|
|
}
|
|
// Suppress eval warning from vm-browserify
|
|
if (warning.message.includes('Use of eval in "../../node_modules/vm-browserify/index.js"')) {
|
|
return;
|
|
}
|
|
warn(warning);
|
|
},
|
|
},
|
|
},
|
|
plugins: [
|
|
react(),
|
|
wasm(),
|
|
nodePolyfills({
|
|
include: ['process', 'buffer', 'vm', 'crypto', 'stream', 'assert', 'http', 'https', 'os', 'url', 'util'],
|
|
}),
|
|
visualizer({ open: false, filename: 'bundle-visualization.html' }),
|
|
],
|
|
server: {
|
|
port: 3000,
|
|
fs: {
|
|
cachedChecks: false,
|
|
},
|
|
proxy: {
|
|
'/api/getTvl': {
|
|
target: `${process.env.VITE_CWAP_API_URL}/cwap_cm/getTvl`,
|
|
changeOrigin: true,
|
|
rewrite: (path) => {
|
|
const result = path.replace('/api/getTvl', '');
|
|
const searchParams = new URLSearchParams({
|
|
btcC1: process.env.VITE_L2_CONTRACT_ADDRESS_BASE_BTC ?? '',
|
|
btcC2: process.env.VITE_L2_CONTRACT_ADDRESS_MAKER_BTC ?? '',
|
|
ethC1: process.env.VITE_L2_CONTRACT_ADDRESS_BASE_ETH ?? '',
|
|
ethC2: process.env.VITE_L2_CONTRACT_ADDRESS_MAKER_ETH ?? '',
|
|
usdtEthC1: process.env.VITE_L2_CONTRACT_ADDRESS_BASE_USDT_ETH ?? '',
|
|
usdtEthC2: process.env.VITE_L2_CONTRACT_ADDRESS_MAKER_USDT_ETH ?? '',
|
|
usdtBnbC1: process.env.VITE_L2_CONTRACT_ADDRESS_BASE_USDT_BNB ?? '',
|
|
usdtBnbC2: process.env.VITE_L2_CONTRACT_ADDRESS_MAKER_USDT_BNB ?? '',
|
|
bnbC1: process.env.VITE_L2_CONTRACT_ADDRESS_BASE_BNB ?? '',
|
|
bnbC2: process.env.VITE_L2_CONTRACT_ADDRESS_MAKER_BNB ?? '',
|
|
});
|
|
return result + '?' + searchParams.toString();
|
|
},
|
|
},
|
|
},
|
|
},
|
|
test: {
|
|
globals: true,
|
|
environment: 'jsdom',
|
|
setupFiles: './vitest.setup.ts',
|
|
silent: true,
|
|
},
|
|
define: {
|
|
__MOCKS__: false,
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
process: 'process/browser',
|
|
buffer: 'buffer',
|
|
crypto: 'crypto-browserify',
|
|
stream: 'stream-browserify',
|
|
assert: 'assert',
|
|
http: 'stream-http',
|
|
https: 'https-browserify',
|
|
os: 'os-browserify',
|
|
url: 'url',
|
|
util: 'util',
|
|
'@': path.resolve(__dirname, './src'),
|
|
},
|
|
},
|
|
};
|
|
});
|