import { fileURLToPath, URL } from 'node:url'
import { readFileSync } from 'node:fs'

import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'

const protobufUtf8CompatPath = fileURLToPath(new URL('./src/utils/protobufUtf8Compat.js', import.meta.url))

function protobufUtf8CompatPlugin() {
  return {
    name: 'protobufjs-utf8-miniprogram-compat',
    load(id) {
      const normalizedId = id.replace(/\\/g, '/')
      if (normalizedId.endsWith('/node_modules/protobufjs/src/util/utf8.js')) {
        return readFileSync(protobufUtf8CompatPath, 'utf8')
      }
    }
  }
}

export default defineConfig({
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  plugins: [
    protobufUtf8CompatPlugin(),
    uni(),
  ],
  /** 构建时常量注入：__BUILD_TIME__ 在源码中展开为精确的打包时刻字符串 */
  define: (() => {
    const d = new Date();
    const pad = (n) => String(n).padStart(2, '0');
    // 格式：YYYY.MMDD.HHmm，如 2026.0514.1530
    const version = `${d.getFullYear()}.${pad(d.getMonth() + 1)}${pad(d.getDate())}.${pad(d.getHours())}${pad(d.getMinutes())}`;
    return { __BUILD_TIME__: JSON.stringify(version) };
  })(),
  
})


