import { defineConfig, type Plugin } from 'vite';
import react from '@vitejs/plugin-react';

const injectRouterBasename: Plugin = {
  name: 'inject-router-basename',
  enforce: 'pre',
  transform(code, id) {
    if (!/\.[jt]sx$/.test(id)) return;
    return code.replace(
      /<IonReactRouter(?![^>]*basename)([^>]*)>/g,
      '<IonReactRouter$1 basename={import.meta.env.BASE_URL}>',
    );
  },
};

export default defineConfig({
  plugins: [injectRouterBasename, react()],
  server: {
    host: '0.0.0.0',
    port: 8100,
    allowedHosts: true,
    hmr: {
      clientPort: process.env.HMR_CLIENT_PORT ? parseInt(process.env.HMR_CLIENT_PORT) : undefined,
    },
  },
  css: { devSourcemap: false },
});
