{"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 \";\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":[],"mappings":";;;;AAQM,MAAA,WAAmB,CAAC,WAAW;AACpC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACjC,UAAA,iBAAiB,4BAA4B,MAAM;AACzD,UAAM,iBAAiB;AACvB,mBAAe,UAAU,IAAI,aAAa,eAAe,MAAM;AAEzD,UAAA,aAAa,IAAI,WAAW,MAAM;AACpC,QAAA,OAAmC,IAAI,aAAa;AAAA,MACvD,GAAG;AAAA,MACH,QAAQ,QAAQ;AACf,YAAI,CAAC,KAAM;AAEX,cAAM,WAA0B;AAAA,UAC/B,QAAQ;AAAA,UACR,MAAM,OAAO;AAAA,UACb,SAAS,CAAC;AAAA,UACV,QAAQ,OAAO;AAAA,UACf,YAAY,OAAO,UAAU;AAAA,UAC7B,SAAS;AAAA,QACV;AACO,eAAA,SAAS,QAAQ,QAAQ;AACzB,eAAA;AAAA,MACR;AAAA,MACA,KAAK,OAAO;AACX,cAAM,EAAE,SAAS,GAAG,IAAI,SAAS,CAAC;AAClC,YAAI,QAAQ;AACX,gBAAM,iBAAiB,WAAW;AAC9B,cAAA,uBAAuB,IAAI,WAAW,QAAQ,WAAW,WAAW,gBAAgB,IAAI,CAAC;AAE7F,gBAAM,iBAAiB,WAAW;AAClC,cAAI,gBAAgB;AACnB,mBAAO,IAAI,WAAW,QAAQ,WAAW,aAAa,gBAAgB,IAAI,CAAC;AAAA,UAAA;AAAA,QAC5E;AAED,eAAO,IAAI,WAAW,MAAM,QAAQ,QAAW,gBAAgB,IAAI,CAAC;AAC7D,eAAA;AAAA,MACR;AAAA,MACA,WAAW;AACV,mBAAW,YAAY;AAAA,MAAA;AAAA,IACxB,CACA;AAEG,QAAA,OAAO,OAAO,uBAAuB,YAAY;AACpD,WAAK,iBAAiB,qBAAqB,OAAO,oBAAoB,IAAI,CAAC;AAAA,IAAA;AAG5E,QAAI,OAAO,OAAO,sBAAsB,WAAiB,MAAA,kBAAkB,OAAO,iBAAiB;AAExF,eAAA,UAAU,MAAM,MAAM;AAAA,EAAA,CACjC;AACF;"}