{"version":3,"file":"preset-interceptors.mjs","sources":["../../../../../../packages/utils/http/core/preset-interceptors.ts"],"sourcesContent":["import type { MakeErrorMessageFn, ResponseInterceptorConfig } from './types'\nimport { isFunction } from '@vue/shared'\nimport axios from 'axios'\nimport { startLoading, endLoading } from './modules/loading'\nimport { getToken } from '@el-plus/utils/cookie'\nimport { useLocale } from '@el-plus/hooks/use-locale'\nconst { t } = useLocale()\n\nexport const defaultRequestInterceptor = () => {\n  return {\n    fulfilled: async (config) => {\n      if (config.loading) {\n        startLoading()\n      }\n      const token = getToken()\n      config.headers.Authorization = token ? `Bearer ${token}` : null\n      config.headers = {\n        ...config.headers,\n        ...window.hx.getSignHeaders({\n          sign: window.$EP_SIGN || {},\n          config,\n        }),\n      }\n      return config\n    },\n    rejected: (error) => {\n      return Promise.reject(error)\n    },\n  }\n}\nexport const defaultResponseInterceptor = (options?: {\n  /** 响应数据中代表访问结果的字段名 */\n  codeField?: string\n  /** 响应数据中装载实际数据的字段名，或者提供一个函数从响应数据中解析需要返回的数据 */\n  dataField?: ((response: any) => any) | string\n  /** 当codeField所指定的字段值与successCode相同时，代表接口访问成功。如果提供一个函数，则返回true代表接口访问成功 */\n  successCode?: ((code: any) => boolean) | number | string\n  makeInfoMessage?: MakeErrorMessageFn\n}): ResponseInterceptorConfig => {\n  const {\n    codeField = 'code',\n    dataField = 'data',\n    successCode = 200,\n    makeInfoMessage,\n  } = options || {}\n  return {\n    fulfilled: (response) => {\n      const { config, data: responseData, status } = response\n      if (config.loading) {\n        endLoading()\n      }\n      if (config.responseReturn === 'raw') {\n        return response\n      }\n      if (!responseData.success && !config.noErrorMsg) {\n        const msg = responseData.msg || responseData.message || 'Error'\n        const error = new Error(msg) as Error & { type: string }\n        error.type = 'service-error'\n        makeInfoMessage?.(msg, error)\n        return Promise.reject(error)\n      }\n\n      if (status >= 200 && status < 400) {\n        if (config.responseReturn === 'body') {\n          return responseData\n        } else if (\n          isFunction(successCode)\n            ? successCode(responseData[codeField])\n            : responseData[codeField] === successCode\n        ) {\n          return isFunction(dataField)\n            ? dataField(responseData)\n            : responseData[dataField]\n        }\n      }\n      throw Object.assign({}, response, { response })\n    },\n  }\n}\n\n// 错误信息拦截器\nexport const errorMessageResponseInterceptor = (\n  makeErrorMessage?: MakeErrorMessageFn,\n): ResponseInterceptorConfig => {\n  return {\n    rejected: (error: any) => {\n      endLoading()\n      if (axios.isCancel(error) || error.type === 'service-error') {\n        return Promise.reject(error)\n      }\n\n      const err: string = error?.toString?.() ?? ''\n      let errMsg = ''\n      if (err?.includes('Network Error')) {\n        errMsg = t('ep.http.networkError')\n      } else if (error?.message?.includes?.('timeout')) {\n        errMsg = t('ep.http.timeout')\n      }\n      if (errMsg) {\n        makeErrorMessage?.(errMsg, error)\n        return Promise.reject(error)\n      }\n\n      let errorMessage = ''\n      const status = error?.response?.status\n      switch (status) {\n        case 400: {\n          errorMessage = t('ep.http.requestError')\n          break\n        }\n        case 401: {\n          errorMessage = t('ep.http.authExpired')\n          break\n        }\n        case 403: {\n          errorMessage = t('ep.http.forbidden')\n          break\n        }\n        case 404: {\n          errorMessage = t('ep.http.notFound')\n          break\n        }\n        default: {\n          errorMessage = t('ep.http.serverError')\n        }\n      }\n      makeErrorMessage?.(errorMessage, error)\n      return Promise.reject(error)\n    },\n  }\n}\n"],"names":[],"mappings":"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"}