import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import path from 'path' import dynamicImport from 'vite-plugin-dynamic-import' import { VitePWA } from 'vite-plugin-pwa' import { getTenants } from './src/proxy/admin/tenant/tenant.service' export default defineConfig(async () => { const baseDomains = ['sozsoft.com', 'dev.sozsoft.com'] const res = await getTenants(0, 1000) const tenantNames = (res?.items ?? []) .filter(t => t?.name) .map(t => t.name.trim().toLowerCase()) const tenantHosts = tenantNames.flatMap(t => baseDomains.map(d => `${t}.${d}`)) const allowedHosts = Array.from(new Set(['localhost', ...baseDomains, ...tenantHosts])) console.log('Allowed Hosts:', allowedHosts) return { plugins: [ react({ babel: { plugins: ['babel-plugin-macros', '@babel/plugin-syntax-dynamic-import'], }, }), dynamicImport(), VitePWA({ registerType: 'autoUpdate', devOptions: { enabled: true }, workbox: { maximumFileSizeToCacheInBytes: 10 * 1024 * 1024, }, manifest: { name: 'Platform', theme_color: '#FF99C8', background_color: '#f0e7db', display: 'standalone', icons: [ { src: '/img/logo/logo-400.png', sizes: '400x400', type: 'image/png', purpose: 'any', }, ], }, }), ], server: { open: true, port: 3000, }, assetsInclude: ['**/*.md'], resolve: { alias: { '@': path.join(__dirname, 'src'), inferno: 'inferno/dist/index.esm.js', 'devextreme/ui': 'devextreme/esm/ui', }, }, build: { outDir: 'dist', sourcemap: false, }, preview: { host: '0.0.0.0', port: 80, open: false, allowedHosts, }, define: { 'process.env': {}, }, } })