import { pathResolve } from '@3rapp/common'; import merge from 'deepmerge'; import { ConfigEnv, UserConfig } from 'vite'; import { createPlugins } from './plugins'; import { Configure } from './types'; export const createConfig = (params: ConfigEnv, configure?: Configure): UserConfig => { const isBuild = params.command === 'build'; return merge( { resolve: { alias: { '@': pathResolve('src'), }, }, css: { modules: { localsConvention: 'camelCaseOnly', }, }, server: { proxy: { '/api': { target: 'http://localhost:3001/api', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ''), }, }, cors: true, }, plugins: createPlugins(isBuild), }, typeof configure === 'function' ? configure(params, isBuild) : {}, { arrayMerge: (_d, s, _o) => Array.from(new Set([..._d, ...s])), }, ); };