feat: 初始化提交
笑笑 authored at 2025-05-13 21:25:06
1.37 KiB
cube-front
import { getEnvConfig } from './environments';
import type { CubeFrontConfig } from './types';
import { defaultConfig } from './defaultConfig';

/**
 * 获取当前环境配置
 */
export function getConfig(): CubeFrontConfig {
  return getEnvConfig();
}

/**
 * 合并配置
 */
export function mergeConfig(config?: Partial<CubeFrontConfig>): CubeFrontConfig {
  // 深度合并配置
  return {
    ...defaultConfig,
    ...config,
    base: {
      ...defaultConfig.base,
      ...(config?.base || {}),
    },
    ui: {
      ...defaultConfig.ui,
      ...(config?.ui || {}),
      layout: {
        ...defaultConfig.ui.layout,
        ...(config?.ui?.layout || {}),
      },
      theme: {
        ...defaultConfig.ui.theme,
        ...(config?.ui?.theme || {}),
      },
    },
    request: {
      ...defaultConfig.request,
      ...(config?.request || {}),
    },
    auth: {
      ...defaultConfig.auth,
      ...(config?.auth || {}),
      reLoginParams: {
        ...(defaultConfig.auth.reLoginParams || {}),
        ...(config?.auth?.reLoginParams || {}),
      },
    },
  };
}

// 导出配置类型
export type {
  CubeFrontConfig,
  BaseConfig, // 替代 AppConfig
  AuthConfig, // 替代 LoginConfig
  RequestConfig, // 替代 RequestConfig
  UIConfig, // 包含原 LayoutConfig 和 ThemeConfig
} from './types';

// 导出默认配置
export { defaultConfig } from './defaultConfig';