{"version":3,"file":"download.mjs","sources":["../../../../../src/uni-adapter/methods/download.ts"],"sourcesContent":["import { AxiosError, AxiosHeaders } from \"axios\";\n// @ts-expect-error ignore\nimport settle from \"axios/unsafe/core/settle\";\nimport { progressEventReducer, resolveUniAppRequestOptions } from \"../utils\";\nimport OnCanceled from \"./onCanceled\";\nimport type { Method } from \"../type\";\nimport type { AxiosResponse, InternalAxiosRequestConfig } from \"axios\";\n\nconst download: Method = (config) => {\n\treturn new Promise((resolve, reject) => {\n\t\tconst requestOptions = resolveUniAppRequestOptions(config);\n\t\tconst responseConfig = config as InternalAxiosRequestConfig;\n\t\tresponseConfig.headers = new AxiosHeaders(requestOptions.header);\n\n\t\tconst onCanceled = new OnCanceled(config);\n\t\tlet task: UniApp.DownloadTask | null = uni.downloadFile({\n\t\t\t...requestOptions,\n\t\t\tsuccess(result) {\n\t\t\t\tif (!task) return;\n\n\t\t\t\tconst response: AxiosResponse = {\n\t\t\t\t\tconfig: responseConfig,\n\t\t\t\t\tdata: result.tempFilePath,\n\t\t\t\t\theaders: {},\n\t\t\t\t\tstatus: result.statusCode,\n\t\t\t\t\tstatusText: result.errMsg ?? \"OK\",\n\t\t\t\t\trequest: task,\n\t\t\t\t};\n\t\t\t\tsettle(resolve, reject, response);\n\t\t\t\ttask = null;\n\t\t\t},\n\t\t\tfail(error) {\n\t\t\t\tconst { errMsg = \"\" } = error ?? {};\n\t\t\t\tif (errMsg) {\n\t\t\t\t\tconst isTimeoutError = errMsg === \"downloadFile:fail timeout\";\n\t\t\t\t\tif (isTimeoutError) reject(new AxiosError(errMsg, AxiosError.ETIMEDOUT, responseConfig, task));\n\n\t\t\t\t\tconst isNetworkError = errMsg === \"downloadFile:fail\" || errMsg === \"downloadFile:fail \";\n\t\t\t\t\tif (isNetworkError) {\n\t\t\t\t\t\treject(new AxiosError(errMsg, AxiosError.ERR_NETWORK, responseConfig, task));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treject(new AxiosError(error.errMsg, undefined, responseConfig, task));\n\t\t\t\ttask = null;\n\t\t\t},\n\t\t\tcomplete() {\n\t\t\t\tonCanceled.unsubscribe();\n\t\t\t},\n\t\t});\n\n\t\tif (typeof config.onDownloadProgress === \"function\") {\n\t\t\ttask.onProgressUpdate(progressEventReducer(config.onDownloadProgress, true));\n\t\t}\n\n\t\tif (typeof config.onHeadersReceived === \"function\") task.onHeadersReceived(config.onHeadersReceived);\n\n\t\tonCanceled.subscribe(task, reject);\n\t});\n};\n\nexport default download;\n"],"names":["download","config","Promise","resolve","reject","requestOptions","resolveUniAppRequestOptions","responseConfig","headers","AxiosHeaders","header","onCanceled","OnCanceled","task","uni","downloadFile","success","result","response","data","tempFilePath","status","statusCode","statusText","errMsg","request","settle","fail","error","AxiosError","ETIMEDOUT","ERR_NETWORK","complete","unsubscribe","onDownloadProgress","onProgressUpdate","progressEventReducer","onHeadersReceived","subscribe"],"mappings":"4QAQA,MAAMA,EAAoBC,GAClB,IAAIC,QAAQ,CAACC,EAASC,KAC5B,MAAMC,EAAiBC,EAA4BL,GAC7CM,EAAiBN,EACvBM,EAAeC,QAAU,IAAIC,EAAaJ,EAAeK,QAEzD,MAAMC,EAAa,IAAIC,EAAWX,GAClC,IAAIY,EAAmCC,IAAIC,aAAa,IACpDV,EACH,OAAAW,CAAQC,GACP,IAAKJ,EAAM,OAEX,MAAMK,EAA0B,CAC/BjB,OAAQM,EACRY,KAAMF,EAAOG,aACbZ,QAAS,CAAA,EACTa,OAAQJ,EAAOK,WACfC,WAAYN,EAAOO,QAAU,KAC7BC,QAASZ,GAEVa,EAAOvB,EAASC,EAAQc,GACxBL,EAAO,IACR,EACA,IAAAc,CAAKC,GACJ,MAAMJ,OAAEA,EAAS,IAAOI,GAAS,CAAA,EACjC,GAAIJ,EAAQ,CACuB,8BAAXA,KACI,IAAIK,EAAWL,EAAQK,EAAWC,UAAWvB,EAAgBM,KAEtD,sBAAXW,GAA6C,uBAAXA,IAExDpB,EAAO,IAAIyB,EAAWL,EAAQK,EAAWE,YAAaxB,EAAgBM,GAExE,CACAT,EAAO,IAAIyB,EAAWD,EAAMJ,YAAQ,EAAWjB,EAAgBM,IAC/DA,EAAO,IACR,EACA,QAAAmB,GACCrB,EAAWsB,aACZ,IAGwC,mBAA9BhC,EAAOiC,oBACjBrB,EAAKsB,iBAAiBC,EAAqBnC,EAAOiC,oBAAoB,IAG/B,mBAA7BjC,EAAOoC,mBAAkCxB,EAAKwB,kBAAkBpC,EAAOoC,mBAElF1B,EAAW2B,UAAUzB,EAAMT"}