config.js 1.45 KB
/*
 * @Description: API 环境配置
 * @Note: 当前环境只由构建配置控制;本地开发默认 mock,生产构建默认正式环境
 */

const F = 'futian_wxamp'
export const CLIENT_ID = '358209'

export const API_ENVIRONMENTS = {
  production: {
    key: 'production',
    label: '正式环境',
    baseURL: 'https://juelin.onwall.cn',
    requestDefaultParams: {
      f: F,
      client_id: CLIENT_ID,
    },
    useMock: false,
  },
  mock: {
    key: 'mock',
    label: '本地 Mock 环境',
    baseURL: 'https://juelin.onwall.cn',
    requestDefaultParams: {
      f: F,
      client_id: CLIENT_ID,
    },
    useMock: true,
  },
}

export const DEFAULT_API_ENV = process.env.NODE_ENV === 'production' ? 'production' : 'mock'

export const getApiEnv = () => {
  const runtimeEnv = process.env.API_RUNTIME_ENV
  if (runtimeEnv && API_ENVIRONMENTS[runtimeEnv]) {
    return runtimeEnv
  }

  return DEFAULT_API_ENV
}

export const getCurrentApiConfig = () => {
  const env = getApiEnv()
  return API_ENVIRONMENTS[env] || API_ENVIRONMENTS[DEFAULT_API_ENV]
}

export const getBaseUrl = () => getCurrentApiConfig().baseURL

export const getRequestDefaultParams = () => ({ ...getCurrentApiConfig().requestDefaultParams })

export const isMockEnabled = () => !!getCurrentApiConfig().useMock

export const getApiEnvLabel = () => getCurrentApiConfig().label

const BASE_URL = getBaseUrl()

export const REQUEST_DEFAULT_PARAMS = getRequestDefaultParams()

export default BASE_URL