{"version":3,"file":"request.mjs","sources":["../../../../../packages/utils/request/request.ts"],"sourcesContent":["import { AxiosInstance, AxiosResponse, AxiosRequestConfig, Method } from 'axios'\nimport { HlLoading } from 'hongluan-ui'\nimport { CommonUtils, Indexable, EmptyUtils } from 'fx-front-utils'\nimport { Loading } from '../loading'\n\n/**\n * 返回类型基础类\n */\n\nexport interface EmptyResponseData {\n  [key: string]: any\n}\n\nexport interface ResponseData {\n  code: number | string\n  desc?: string\n  tips?: string\n  data: unknown\n}\n\nexport interface MockResponseData {\n  code?: number | string\n  data: ResponseData\n  message: string\n  meta: any\n  success: boolean\n}\n\nexport interface TableList {\n  list: Indexable<any>[]\n}\n/**\n * api 调用辅助类\n */\nexport class RequestAxios {\n  private serverObj: AxiosInstance\n  private arrayBufferUrls: string[]\n  private notTranslateEmpty: string[]\n  private showMsgUrls: string[]\n  private successCodes: string[]\n  private ifGetFileNameFromHeader: (url: string) => boolean\n  constructor(config: any) {\n    this.serverObj = config.serverObj\n    this.arrayBufferUrls = config.arrayBufferUrls\n    this.notTranslateEmpty = config.notTranslateEmpty\n    this.showMsgUrls = config.showMsgUrls\n    this.successCodes = config.successCodes || ['0']\n    this.ifGetFileNameFromHeader = config.ifGetFileNameFromHeader || (() => false)\n  }\n\n  post(url: string, data: unknown = null, headers: Record<string, any> = {}) {\n    return this.http(url, data, 'POST', headers)\n  }\n  put(url: string, data: unknown = null, headers: Record<string, any> = {}) {\n    return this.http(url, data, 'PUT', headers)\n  }\n  get(url: string, headers: Record<string, any> = {}) {\n    return this.http(url, null, 'GET', headers)\n  }\n  delete(url: string, headers: Record<string, any> = {}) {\n    return this.http(url, null, 'DELETE', headers)\n  }\n\n  http(url: string, data: unknown, method: Method, headers: Record<string, any> = {}) {\n    return new Promise<ResponseData>((resolve, reject) => {\n      const config: AxiosRequestConfig = {\n        url,\n        method,\n        headers,\n        data,\n      }\n      const showDownloading = this.arrayBufferUrls.some(item => config.url?.indexOf(item) !== -1)\n      const tableNotTranslateEmpty = this.notTranslateEmpty.some(item => config.url?.indexOf(item) !== -1)\n      let loadingInstance: any = null\n      if (showDownloading) {\n        loadingInstance = HlLoading.service({\n          lock: true,\n          text: '下载中',\n          spinner: 'fw-icon-loading',\n          background: 'rgba(1, 1, 1, 0.1)',\n        })\n      }\n      this.serverObj.request(config).then(\n        (response: AxiosResponse) => {\n          const respData: ResponseData = response.data\n          if (respData instanceof ArrayBuffer) {\n            const fileName = this.ifGetFileNameFromHeader(config.url) ? response.headers['content-disposition']?.split('filename*=utf-8\\'\\'')[1] : 'file.dat'\n            CommonUtils.handleFileBuffer(response, fileName)\n            loadingInstance && loadingInstance.close()\n            resolve({ code: 0, data: true, desc: '下载成功' })\n          } else {\n            const respCode = respData.code + ''\n            const isInShowMsgUrls = this.showMsgUrls.some(item => config.url?.indexOf(item) !== -1)\n            if (isInShowMsgUrls && this.successCodes.includes(respCode)) {\n              Loading.showMessageTip(1, respData.desc || '操作成功')\n              resolve(respData)\n            } else {\n              // 格式化表格中的空属性\n              if (this.successCodes.includes(respCode) && respData.data && (respData.data as TableList)?.list && !tableNotTranslateEmpty) {\n                (respData.data as TableList).list = EmptyUtils.formatArray((respData.data as TableList).list)\n              }\n              this.successCodes.includes(respCode) ? resolve(respData) : reject(`[FX]Request(${config.url}): response code is not successful. Response Data: ` + JSON.stringify(respData))\n            }\n          }\n        },\n        (err: unknown) => {\n          loadingInstance && loadingInstance.close()\n          reject(err)\n        },\n      )\n    })\n  }\n}\n\nlet axiosRequestSingle: RequestAxios\n\nconst getRequest = (config: {\n  showMsgUrls: string[]\n  arrayBufferUrls: string[]\n  notTranslateEmpty: string[]\n  successCodes?: string[]\n  ifGetFileNameFromHeader?: (url: string) => boolean\n  serverObj: AxiosInstance\n}) => {\n  if (!axiosRequestSingle) {\n    axiosRequestSingle = new RequestAxios(config)\n  }\n  return axiosRequestSingle\n}\n\nexport { getRequest }\n"],"names":[],"mappings":";;;;AAkC0B,MAAA,YAAA,CAAA;AAAA,EAOxB,YAAY,MAAa,EAAA;AACvB,IAAA,IAAA,CAAK,YAAY,MAAO,CAAA,SAAA,CAAA;AACxB,IAAA,IAAA,CAAK,kBAAkB,MAAO,CAAA,eAAA,CAAA;AAC9B,IAAA,IAAA,CAAK,oBAAoB,MAAO,CAAA,iBAAA,CAAA;AAChC,IAAA,IAAA,CAAK,cAAc,MAAO,CAAA,WAAA,CAAA;AAC1B,IAAK,IAAA,CAAA,YAAA,GAAe,MAAO,CAAA,YAAA,IAAgB,CAAC,GAAA,CAAA,CAAA;AAC5C,IAAK,IAAA,CAAA,uBAAA,GAA0B,MAAO,CAAA,uBAAA,KAAkC,MAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAG1E,IAAK,CAAA,GAAA,EAAa,IAAgB,GAAA,IAAA,EAAM,UAA+B,EAAI,EAAA;AACzE,IAAA,OAAO,IAAK,CAAA,IAAA,CAAK,GAAK,EAAA,IAAA,EAAM,MAAQ,EAAA,OAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAEtC,GAAI,CAAA,GAAA,EAAa,IAAgB,GAAA,IAAA,EAAM,UAA+B,EAAI,EAAA;AACxE,IAAA,OAAO,IAAK,CAAA,IAAA,CAAK,GAAK,EAAA,IAAA,EAAM,KAAO,EAAA,OAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAErC,GAAA,CAAI,GAAa,EAAA,OAAA,GAA+B,EAAI,EAAA;AAClD,IAAA,OAAO,IAAK,CAAA,IAAA,CAAK,GAAK,EAAA,IAAA,EAAM,KAAO,EAAA,OAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAErC,MAAA,CAAO,GAAa,EAAA,OAAA,GAA+B,EAAI,EAAA;AACrD,IAAA,OAAO,IAAK,CAAA,IAAA,CAAK,GAAK,EAAA,IAAA,EAAM,QAAU,EAAA,OAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAGxC,IAAK,CAAA,GAAA,EAAa,IAAe,EAAA,MAAA,EAAgB,UAA+B,EAAI,EAAA;AAClF,IAAA,OAAO,IAAI,OAAA,CAAsB,CAAC,OAAA,EAAS,MAAW,KAAA;AACpD,MAAA,MAAM,MAA6B,GAAA;AAAA,QACjC,GAAA;AAAA,QACA,MAAA;AAAA,QACA,OAAA;AAAA,QACA,IAAA;AAAA,OAAA,CAAA;AAEF,MAAA,MAAM,eAAkB,GAAA,IAAA,CAAK,eAAgB,CAAA,IAAA,CAAK,CAAK,IAAA,KAAA;AAvE7D,QAAA,IAAA,EAAA,CAAA;AAuEgE,QAAO,OAAA,CAAA,CAAA,EAAA,GAAA,MAAA,CAAA,GAAA,KAAP,IAAY,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,CAAQ,IAAU,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AACxF,MAAA,MAAM,sBAAyB,GAAA,IAAA,CAAK,iBAAkB,CAAA,IAAA,CAAK,CAAK,IAAA,KAAA;AAxEtE,QAAA,IAAA,EAAA,CAAA;AAwEyE,QAAO,OAAA,CAAA,CAAA,EAAA,GAAA,MAAA,CAAA,GAAA,KAAP,IAAY,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,CAAQ,IAAU,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AACjG,MAAA,IAAI,eAAuB,GAAA,IAAA,CAAA;AAC3B,MAAA,IAAI,eAAiB,EAAA;AACnB,QAAA,eAAA,GAAkB,UAAU,OAAQ,CAAA;AAAA,UAClC,IAAM,EAAA,IAAA;AAAA,UACN,IAAM,EAAA,oBAAA;AAAA,UACN,OAAS,EAAA,iBAAA;AAAA,UACT,UAAY,EAAA,oBAAA;AAAA,SAAA,CAAA,CAAA;AAAA,OAAA;AAGhB,MAAA,IAAA,CAAK,SAAU,CAAA,OAAA,CAAQ,MAAQ,CAAA,CAAA,IAAA,CAC7B,CAAC,QAA4B,KAAA;AAnFrC,QAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAoFU,QAAA,MAAM,WAAyB,QAAS,CAAA,IAAA,CAAA;AACxC,QAAA,IAAI,oBAAoB,WAAa,EAAA;AACnC,UAAM,MAAA,QAAA,GAAW,IAAK,CAAA,uBAAA,CAAwB,MAAO,CAAA,GAAA,CAAA,GAAO,CAAS,EAAA,GAAA,QAAA,CAAA,OAAA,CAAQ,qBAAjB,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAyC,KAAM,CAAA,mBAAA,CAAA,CAAuB,CAAK,CAAA,GAAA,UAAA,CAAA;AACvI,UAAA,WAAA,CAAY,iBAAiB,QAAU,EAAA,QAAA,CAAA,CAAA;AACvC,UAAA,eAAA,IAAmB,eAAgB,CAAA,KAAA,EAAA,CAAA;AACnC,UAAA,OAAA,CAAQ,EAAE,IAAA,EAAM,CAAG,EAAA,IAAA,EAAM,MAAM,IAAM,EAAA,0BAAA,EAAA,CAAA,CAAA;AAAA,SAChC,MAAA;AACL,UAAM,MAAA,QAAA,GAAW,SAAS,IAAO,GAAA,EAAA,CAAA;AACjC,UAAA,MAAM,eAAkB,GAAA,IAAA,CAAK,WAAY,CAAA,IAAA,CAAK,CAAK,IAAA,KAAA;AA5F/D,YAAA,IAAA,GAAA,CAAA;AA4FkE,YAAO,OAAA,CAAA,CAAA,GAAA,GAAA,MAAA,CAAA,GAAA,KAAP,IAAY,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,OAAA,CAAQ,IAAU,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,WAAA,CAAA,CAAA;AACpF,UAAA,IAAI,eAAmB,IAAA,IAAA,CAAK,YAAa,CAAA,QAAA,CAAS,QAAW,CAAA,EAAA;AAC3D,YAAQ,OAAA,CAAA,cAAA,CAAe,CAAG,EAAA,QAAA,CAAS,IAAQ,IAAA,0BAAA,CAAA,CAAA;AAC3C,YAAQ,OAAA,CAAA,QAAA,CAAA,CAAA;AAAA,WACH,MAAA;AAEL,YAAI,IAAA,IAAA,CAAK,YAAa,CAAA,QAAA,CAAS,QAAa,CAAA,IAAA,QAAA,CAAS,IAAS,KAAA,CAAA,EAAA,GAAA,QAAA,CAAS,IAAT,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAA6B,IAAQ,CAAA,IAAA,CAAC,sBAAwB,EAAA;AAC1H,cAAC,SAAS,IAAmB,CAAA,IAAA,GAAO,UAAW,CAAA,WAAA,CAAa,SAAS,IAAmB,CAAA,IAAA,CAAA,CAAA;AAAA,aAAA;AAE1F,YAAK,IAAA,CAAA,YAAA,CAAa,QAAS,CAAA,QAAA,CAAA,GAAY,OAAQ,CAAA,QAAA,CAAA,GAAY,OAAO,CAAe,YAAA,EAAA,MAAA,CAAO,GAA2D,CAAA,mDAAA,CAAA,GAAA,IAAA,CAAK,SAAU,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,WAAA;AAAA,SAAA;AAAA,OAAA,EAIxK,CAAC,GAAiB,KAAA;AAChB,QAAA,eAAA,IAAmB,eAAgB,CAAA,KAAA,EAAA,CAAA;AACnC,QAAO,MAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAOjB,IAAI,kBAAA,CAAA;AAEE,MAAA,UAAA,GAAa,CAAC,MAOd,KAAA;AACJ,EAAA,IAAI,CAAC,kBAAoB,EAAA;AACvB,IAAA,kBAAA,GAAqB,IAAI,YAAa,CAAA,MAAA,CAAA,CAAA;AAAA,GAAA;AAExC,EAAO,OAAA,kBAAA,CAAA;AAAA;;;;"}