import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path, { resolve, dirname } from 'node:path'
import { fileURLToPath } from 'url'
import MarkdownItSub from 'markdown-it-sub'
import MarkdownItSup from 'markdown-it-sup'
import MarkdownItFootnote from 'markdown-it-footnote'
import markdownItMark from 'markdown-it-mark'
import MarkdownItIns from 'markdown-it-ins'
import VitePluginReactMarkdown from './plugins/vite-plugin-react-markdown'

const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
const generateScopedName = '[name]__[local]___[hash:base64:5]'

export default defineConfig({
  mode: 'development',
  plugins: [
    VitePluginReactMarkdown({
      markdownItUses: [MarkdownItSub, MarkdownItSup, MarkdownItFootnote, markdownItMark, MarkdownItIns]
    }),
    react()
  ],
  css: {
    modules: {
      generateScopedName
    },
  },
  build: {
    rollupOptions: {
      output: {
        format: 'es',
        // manualChunks,
        // chunkFileNames: 'assets/[name]-[hash].js'
      }
    },
  },

  resolve: {
    alias: {
      '@src': resolve(__dirname, 'src'),
      '@assets': resolve(__dirname, 'assets'),
      '@': resolve(__dirname, '.'),
    }
  },
  server: {
    host: '0.0.0.0',
    port: 3302,
    proxy: {
      '/api': {
        target: 'https://testadmin.piaoquantv.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      }
    }
  }
})

function manualChunks(id) {
  if (!id.includes('node_modules')) {
    console.log(dirname(id))
    return dirname(id).split('/').at(-1)
  }
}