@livelybone/easy-request
Version:
A easy-to-use http request library to support all javascript runtime environments. 一个以支持所有JavaScript运行环境为目的、简单易用的http请求库。
10 lines (8 loc) • 31.4 kB
JavaScript
/**
* Bundle of @livelybone/easy-request
* Generated: 2020-07-29
* Version: 1.9.1
* License: MIT
* Author: 2631541504@qq.com
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).EasyRequest={})}(this,function(o){"use strict";function P(e){return(P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}function h(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?s(Object(n),!0).forEach(function(e){u(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function n(e,t){return(n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function l(e,t){if(null==e)return{};var n,r=function(e,t){if(null==e)return{};for(var n,r={},o=Object.keys(e),s=0;s<o.length;s++)n=o[s],0<=t.indexOf(n)||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols)for(var o=Object.getOwnPropertySymbols(e),s=0;s<o.length;s++)n=o[s],0<=t.indexOf(n)||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n]);return r}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(s){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t,n,r,o=f(s);return t=i?(e=f(this).constructor,Reflect.construct(o,arguments,e)):o.apply(this,arguments),n=this,!(r=t)||"object"!=typeof r&&"function"!=typeof r?p(n):r}}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,s=void 0;try{for(var i,a=e[Symbol.iterator]();!(r=(i=a.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,s=e}finally{try{r||null==a.return||a.return()}finally{if(o)throw s}}return n}(e,t)||m(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||m(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){if(e){if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,t):void 0}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var e;(e=o.EngineName||(o.EngineName={})).WX="wx",e.MY="my",e.XHR="xhr",e.Fetch="fetch";var t;b=t={exports:{}},w=function(){return function(e,t,n){t=t||"",n=n||512;for(var r=atob(e),o=[],s=0;s<r.length;s+=n){for(var i=r.slice(s,s+n),a=new Array(i.length),u=0;u<i.length;u++)a[u]=i.charCodeAt(u);var c=new Uint8Array(a);o.push(c)}return new Blob(o,{type:t})}},b.exports?(b.exports=w(),b.exports.default=b.exports):window.b64toBlob=w();var b,w;function k(e){return void 0===e}function j(e){return Array.isArray(e)}function q(e){return e&&"number"==typeof e.size&&"string"==typeof e.type&&"function"==typeof e.slice}function C(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r<e.length;++r)void 0!==e[r]&&(n[r]=e[r]);return n}function O(e,t){L.apply(e,M(t)?t:[t])}function T(e,t,n,r,o,s,i,a,u,c,f,l,h){var p,d=e;if("function"==typeof i?d=i(t,d):d instanceof Date?d=c(d):"comma"===n&&M(d)&&(d=S.maybeMap(d,function(e){return e instanceof Date?c(e):e}).join(",")),null===d){if(r)return s&&!l?s(t,V.encoder,h,"key"):t;d=""}if("string"==typeof(p=d)||"number"==typeof p||"boolean"==typeof p||"symbol"===P(p)||"bigint"==typeof p||S.isBuffer(d))return s?[f(l?t:s(t,V.encoder,h,"key"))+"="+f(s(d,V.encoder,h,"value"))]:[f(t)+"="+f(String(d))];var y,g,m=[];if(void 0===d)return m;g=M(i)?i:(y=Object.keys(d),a?y.sort(a):y);for(var v=0;v<g.length;++v){var b,w=g[v],k=d[w];o&&null===k||(b=M(d)?"function"==typeof n?n(t,w):t:t+(u?"."+w:"["+w+"]"),O(m,T(k,b,n,r,o,s,i,a,u,c,f,l,h)))}return m}var E=function n(r,o,s,i){return(o=o||{}).indices=!k(o.indices)&&o.indices,o.nullsAsUndefineds=!k(o.nullsAsUndefineds)&&o.nullsAsUndefineds,o.booleansAsIntegers=!k(o.booleansAsIntegers)&&o.booleansAsIntegers,s=s||new FormData,k(r)||(null===r?o.nullsAsUndefineds||s.append(i,""):"boolean"!=typeof r?j(r)?r.length&&r.forEach(function(e,t){n(e,o,s,i+"["+(o.indices?t:"")+"]")}):r instanceof Date?s.append(i,r.toISOString()):r!==Object(r)||q(e=r)&&"string"==typeof e.name&&("object"==P(e.lastModifiedDate)||"number"==typeof e.lastModified)||q(r)?s.append(i,r):Object.keys(r).forEach(function(e){var t=r[e];if(j(t))for(;2<e.length&&e.lastIndexOf("[]")===e.length-2;)e=e.substring(0,e.length-2);n(t,o,s,i?i+"["+e+"]":e)}):s.append(i,o.booleansAsIntegers?r?1:0:r)),s;var e},I=Object.prototype.hasOwnProperty,R=Array.isArray,x=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),S={arrayToObject:C,assign:function(e,n){return Object.keys(n).reduce(function(e,t){return e[t]=n[t],e},e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],n=[],r=0;r<t.length;++r)for(var o=t[r],s=o.obj[o.prop],i=Object.keys(s),a=0;a<i.length;++a){var u=i[a],c=s[u];"object"===P(c)&&null!==c&&-1===n.indexOf(c)&&(t.push({obj:s,prop:u}),n.push(c))}return function(e){for(;1<e.length;){var t=e.pop(),n=t.obj[t.prop];if(R(n)){for(var r=[],o=0;o<n.length;++o)void 0!==n[o]&&r.push(n[o]);t.obj[t.prop]=r}}}(t),e},decode:function(e,t,n){var r=e.replace(/\+/g," ");if("iso-8859-1"===n)return r.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(r)}catch(e){return r}},encode:function(e,t,n){if(0===e.length)return e;var r=e;if("symbol"===P(e)?r=Symbol.prototype.toString.call(e):"string"!=typeof e&&(r=String(e)),"iso-8859-1"===n)return escape(r).replace(/%u[0-9a-f]{4}/gi,function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"});for(var o="",s=0;s<r.length;++s){var i=r.charCodeAt(s);45===i||46===i||95===i||126===i||48<=i&&i<=57||65<=i&&i<=90||97<=i&&i<=122?o+=r.charAt(s):i<128?o+=x[i]:i<2048?o+=x[192|i>>6]+x[128|63&i]:i<55296||57344<=i?o+=x[224|i>>12]+x[128|i>>6&63]+x[128|63&i]:(s+=1,i=65536+((1023&i)<<10|1023&r.charCodeAt(s)),o+=x[240|i>>18]+x[128|i>>12&63]+x[128|i>>6&63]+x[128|63&i])}return o},isBuffer:function(e){return!(!e||"object"!==P(e))&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(R(e)){for(var n=[],r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)},merge:function r(o,s,i){if(!s)return o;if("object"!==P(s)){if(R(o))o.push(s);else{if(!o||"object"!==P(o))return[o,s];(i&&(i.plainObjects||i.allowPrototypes)||!I.call(Object.prototype,s))&&(o[s]=!0)}return o}if(!o||"object"!==P(o))return[o].concat(s);var e=o;return R(o)&&!R(s)&&(e=C(o,i)),R(o)&&R(s)?(s.forEach(function(e,t){var n;I.call(o,t)?(n=o[t])&&"object"===P(n)&&e&&"object"===P(e)?o[t]=r(n,e,i):o.push(e):o[t]=e}),o):Object.keys(s).reduce(function(e,t){var n=s[t];return I.call(e,t)?e[t]=r(e[t],n,i):e[t]=n,e},e)}},N=String.prototype.replace,D=/%20/g,A={RFC1738:"RFC1738",RFC3986:"RFC3986"},F=S.assign({default:A.RFC3986,formatters:{RFC1738:function(e){return N.call(e,D,"+")},RFC3986:function(e){return String(e)}}},A),U=Object.prototype.hasOwnProperty,H={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},M=Array.isArray,L=Array.prototype.push,X=Date.prototype.toISOString,B=F.default,V={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:S.encode,encodeValuesOnly:!1,format:B,formatter:F.formatters[B],indices:!1,serializeDate:function(e){return X.call(e)},skipNulls:!1,strictNullHandling:!1},_=(Object.prototype.hasOwnProperty,Array.isArray,function(e,t){var n=e,r=function(e){if(!e)return V;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||V.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var n=F.default;if(void 0!==e.format){if(!U.call(F.formatters,e.format))throw new TypeError("Unknown format option provided.");n=e.format}var r=F.formatters[n],o=V.filter;return"function"!=typeof e.filter&&!M(e.filter)||(o=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:V.addQueryPrefix,allowDots:void 0===e.allowDots?V.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:V.charsetSentinel,delimiter:void 0===e.delimiter?V.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:V.encode,encoder:"function"==typeof e.encoder?e.encoder:V.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:V.encodeValuesOnly,filter:o,formatter:r,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:V.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:V.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:V.strictNullHandling}}(t);"function"==typeof r.filter?n=(0,r.filter)("",n):M(r.filter)&&(a=r.filter);var o,s=[];if("object"!==P(n)||null===n)return"";o=t&&t.arrayFormat in H?t.arrayFormat:!(t&&"indices"in t)||t.indices?"indices":"repeat";var i=H[o],a=a||Object.keys(n);r.sort&&a.sort(r.sort);for(var u=0;u<a.length;++u){var c=a[u];r.skipNulls&&null===n[c]||O(s,T(n[c],c,i,r.strictNullHandling,r.skipNulls,r.encode?r.encoder:null,r.filter,r.sort,r.allowDots,r.serializeDate,r.formatter,r.encodeValuesOnly,r.charset))}var f=s.join(r.delimiter),l=!0===r.addQueryPrefix?"?":"";return r.charsetSentinel&&("iso-8859-1"===r.charset?l+="utf8=%26%2310003%3B&":l+="utf8=%E2%9C%93&"),0<f.length?l+f:""});function W(e,t,n){var r=/^https?:\/\//.test(t)?t:"".concat(e,"///").concat(t).replace(/\/{3,}/g,"/");return n?"".concat(r,"?&").concat(_(n)).replace(/\?+&+/,"?"):r}function z(e,t){var r;if(!e||!(1<arguments.length&&void 0!==t&&t))return Promise.resolve("");if(URL&&URL.createObjectURL){var n=URL.createObjectURL(e);return console.warn("ObjectURL `".concat(n,"` has been created in the app, make sure you will revoke it at the right time in you code by script `URL.revokeObjectURL(").concat(n,")`")),Promise.resolve(n)}return r=e,new Promise(function(t,n){try{var e=new FileReader;e.onload=function(e){t(e.target.result)},e.readAsDataURL(r)}catch(e){n(e)}})}function $(t){if(!t)return t;try{return JSON.parse(t)}catch(e){return t}}function Q(e,t,n){if(!e)return null;if(e instanceof FormData)return e;var r=n||{},o=r.customConvertFn,s=l(r,["customConvertFn"]);return"multipart/form-data"===t?o?o(e):E(e,s):"application/json"===t?JSON.stringify(e):_(e)}function Y(e){return void 0===e||200<=e&&e<300}function G(e,t){var n=h(h(h({},e),t),{},{headers:function e(t,n){var r=n||t;return Object.keys(r).reduce(function(e,t){return"content-type"!==t.toLowerCase()?e[t]=r[t]:e["Content-Type"]=r[t],e},n?e(t):{})}(e.headers,t&&t.headers),statusValidator:t&&t.statusValidator||e.statusValidator||Y});return n.method=n.method.toUpperCase(),"undefined"!=typeof FormData&&n.data instanceof FormData&&delete n.headers["Content-Type"],n}function K(n,e){var t=1<arguments.length&&void 0!==e?e:"";if("object"!==P(n)||null===n)return n||t;var r=t;return["message","msg","error","err","errMessage","errMsg","errorMessage","errorMsg"].some(function(e){var t=n[e]||n[e.toLowerCase()];return t&&(r=t),!!t}),r}function J(e){var t=e&&e["content-disposition"];if(!t)return"";var n=t.match(/(file)?name\s*=\s*([^=]+)($|,)/);return n&&n[2]||""}function Z(e){i(this,Z),u(this,"config",void 0),u(this,"requestInstance",void 0),u(this,"requestTask",void 0),u(this,"response",{url:"",data:null,statusCode:0,headers:{}}),u(this,"aborted",!1),this.config=e}var ee=function(){function s(e){i(this,s),u(this,"promise",void 0),u(this,"abort",function(){}),this.promise=new Promise(e)}return a(s,[{key:"then",value:function(n,r){var o=this,e=new s(function(e,t){o.promise.then(n,r).then(e,t)});return e.abort=this.abort,e}},{key:"catch",value:function(n){var r=this,e=new s(function(e,t){r.promise.catch(n).then(e,t)});return e.abort=this.abort,e}},{key:"finally",value:function(r){var e=this,t=new s(function(t,n){e.promise.then(function(e){r(),t(e)},function(e){r(),n(e)})});return t.abort=this.abort,t}}]),s}();function te(e,t){var n,r={url:e.url,method:e.method.toUpperCase(),headers:e.headers,header:e.headers,signal:t&&t.signal,mode:e.mode||"cors",credentials:e.withCredentials?"include":"omit",redirect:e.redirect||"follow",cache:"default",referrer:"no-referrer"};return["GET","HEAD"].includes(r.method)?(delete e.headers["Content-Type"],r.url=W("/",e.url,e.data)):(n=e.headers["Content-Type"],r.body=Q(e.data,n,e.convertFormDataOptions),"multipart/form-data"!==n&&r.body||delete e.headers["Content-Type"]),r}var ne=function(){c(r,Z);var n=d(r);function r(e){var t;return i(this,r),u(p(t=n.call(this,e)),"name",o.EngineName.Fetch),"function"==typeof fetch&&(t.requestInstance=function(){return fetch.apply(void 0,arguments)}),"undefined"!=typeof AbortController&&(t.requestTask=new AbortController),t}return a(r,[{key:"abort",value:function(){if(!this.requestTask)throw new Error("AbortController api does not exist!");this.requestTask.abort()}},{key:"getConfig",value:function(){return te(this.config,this.requestTask)}}]),r}();function re(n){var e=n.getConfig(),r=e.url,t=l(e,["url"]);return n.requestInstance(r,t).then(function(e){n.response={url:e.url||r,statusCode:e.status||200,headers:e.headers,data:null};var t=n.config.responseType;return Promise.resolve("blob"===t?e.blob():"json"===t?e.json():"arraybuffer"===t?e.arrayBuffer():e.text()).catch(function(){return null}).then(function(e){return n.response.data=e,n.response})})}var oe=function(){c(t,ne);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"open",value:function(){return this.requestInstance?re(this):Promise.reject(new Error("fetch api does not exist, please check the environment!"))}}]),t}(),se=function(){c(t,ne);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"open",value:function(){var s=this;if(!this.requestInstance)return Promise.reject(new Error("fetch api does not exist, please check the environment!"));this.config.onDownloadProgress&&console.warn(new Error("Download progress does not support yet in fetch"));var e=this.getConfig(),i=e.url,t=l(e,["url"]);return this.requestInstance(i,t).then(function(r){var o=g(r.headers.entries()).reduce(function(e,t){var n=y(t,2),r=n[0],o=n[1];return h(h({},e),{},u({},r,o))},{});return r.blob().then(function(n){return z(n,!!s.config.filePath).then(function(e){var t=J(o);return n.name=t,s.response={url:r.url||i,blob:n,tempFilePath:e,filePath:s.config.filePath,statusCode:r.status||200,headers:o,filename:t},s.response})})})}}]),t}(),ie=function(){c(t,ne);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"open",value:function(){return this.requestInstance?(this.config.onUploadProgress&&console.warn(new Error("Download progress does not support yet in fetch")),re(this)):Promise.reject(new Error("fetch api does not exist, please check the environment!"))}},{key:"getConfig",value:function(){return te(h(h({},this.config),{},{data:h(h({},this.config.extraData),{},u({},this.config.fileKey,this.config.file)),method:"POST",responseType:"json",withCredentials:!0,headers:h(h({},this.config.headers),{},{"Content-Type":"multipart/form-data"})}),this.requestTask)}}]),t}(),ae=function(){c(r,Z);var n=d(r);function r(e){var t;return i(this,r),u(p(t=n.call(this,e)),"name",o.EngineName.MY),my&&(my.request||my.httpRequest)&&(t.requestInstance=my.request||my.httpRequest),t}return a(r,[{key:"abort",value:function(){if(!this.requestTask)throw new Error("Please call abort after request opened");this.requestTask.abort()}}]),r}(),ue=function(){c(t,ae);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"getConfig",value:function(){return{url:this.config.url,method:this.config.method.toUpperCase(),data:this.config.data,headers:this.config.headers,header:this.config.headers,timeout:this.config.timeout,dataType:this.config.responseType}}},{key:"open",value:function(){var n=this;return this.requestInstance?["blob","document"].includes(this.config.responseType)?Promise.reject(new Error("The dataType `".concat(this.config.responseType,"` is not supported in my"))):new Promise(function(t,e){n.requestTask=n.requestInstance(h(h({},n.getConfig()),{},{success:function(e){n.response=h(h({},e),{},{url:e.url||n.config.url,data:$(e.data),statusCode:e.statusCode||e.status||200,headers:e.header||e.headers}),t(n.response)},failed:e}))}):Promise.reject(new Error("`my.request` and `my.httpRequest` does not exist, please check the environment!"))}}]),t}();function ce(e,o){e.onProgressUpdate(function(e){var t=e.progress,n=e.totalBytesWritten,r=e.totalBytesExpectedToWrite;o({progress:t,total:r,transmitted:n})})}var fe=function(){c(t,ae);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"getConfig",value:function(){return{url:this.config.url,header:this.config.headers,headers:this.config.headers}}},{key:"open",value:function(){var r=this;return this.requestInstance?new Promise(function(t,e){r.requestTask=r.requestInstance(h(h({},r.getConfig()),{},{success:function(e){r.response=h(h({},e),{},{url:e.url||r.config.url,tempFilePath:e.tempFilePath,filePath:r.config.filePath,statusCode:e.statusCode||e.status||200}),t(r.response)},failed:e}));var n=r.config.onDownloadProgress;n&&(r.requestTask.onProgressUpdate?ce(r.requestTask,n):console.warn("`my.downloadFile` does not support download progress event in the current version!"))}):Promise.reject(new Error("`my.downloadFile` does not exist, please check the environment!"))}}]),t}(),le=function(){c(t,ae);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"getConfig",value:function(){return{url:this.config.url,filePath:this.config.file,fileName:this.config.fileKey,fileType:this.config.fileType||"image",header:this.config.headers,headers:this.config.headers,formData:this.config.extraData}}},{key:"open",value:function(){var r=this;return this.requestInstance?new Promise(function(t,e){r.requestTask=r.requestInstance(h(h({},r.getConfig()),{},{success:function(e){r.response=h(h({},e),{},{url:e.url||r.config.url,data:$(e.data),headers:e.header||e.headers,statusCode:e.statusCode||e.status||200}),t(r.response)},fail:e}));var n=r.config.onUploadProgress;n&&(r.requestTask.onProgressUpdate?ce(r.requestTask,n):console.warn("`my.uploadFile` does not support upload progress event in the current version!"))}):Promise.reject(new Error("`my.uploadFile` does not exist, please check the environment!"))}}]),t}(),he=function(){c(r,Z);var n=d(r);function r(e){var t;return i(this,r),u(p(t=n.call(this,e)),"name",o.EngineName.WX),wx&&wx.request&&(t.requestInstance=wx.request),t}return a(r,[{key:"abort",value:function(){if(!this.requestTask)throw new Error("Please call abort after request opened");this.requestTask.abort()}}]),r}(),pe=function(){c(t,he);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"getConfig",value:function(){return{url:this.config.url,data:this.config.data,method:this.config.method,dataType:this.config.responseType,timeout:this.config.timeout,header:this.config.headers,headers:this.config.headers}}},{key:"open",value:function(){var n=this;return this.requestInstance?(this.config.responseType&&!["json","text"].includes(this.config.responseType)&&console.warn(new Error("The dataType `".concat(this.config.responseType,"` is not supported in wx"))),new Promise(function(t,e){n.requestTask=n.requestInstance(h(h({},n.getConfig()),{},{success:function(e){n.response=h(h({},e),{},{url:e.url||n.config.url,data:$(e.data),headers:e.header||e.headers,statusCode:e.statusCode||200}),t(n.response)},failed:e}))})):Promise.reject(new Error("`wx.request` does not exist, please check the environment!"))}}]),t}();function de(s,i){s.onProgressUpdate(function e(t){var n=t.progress,r=t.totalBytesWritten,o=t.totalBytesExpectedToWrite;i({progress:n,total:o,transmitted:r}),0<=r-o&&s.offProgressUpdate(e)})}var ye=function(){c(t,he);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"getConfig",value:function(){return{url:this.config.url,timeout:this.config.timeout,header:this.config.headers,headers:this.config.headers,filePath:this.config.filePath}}},{key:"open",value:function(){var r=this;return this.requestInstance?new Promise(function(t,e){r.requestTask=r.requestInstance(h(h({},r.getConfig()),{},{success:function(e){r.response=h(h({},e),{},{url:e.url||r.config.url,tempFilePath:e.tempFilePath,filePath:r.config.filePath,statusCode:e.statusCode||200}),t(r.response)},failed:e}));var n=r.config.onDownloadProgress;n&&(r.requestTask.onProgressUpdate?de(r.requestTask,n):console.warn("`wx.downloadFile` does not support download progress event in the current version!"))}):Promise.reject(new Error("`wx.downloadFile` does not exist, please check the environment!"))}}]),t}(),ge=function(){c(t,he);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"getConfig",value:function(){return{url:this.config.url,timeout:this.config.timeout,header:this.config.headers,headers:this.config.headers}}},{key:"open",value:function(){var r=this;return this.requestInstance?new Promise(function(t,e){r.requestTask=r.requestInstance(h(h({},r.getConfig()),{},{success:function(e){r.response=h(h({},e),{},{url:e.url||r.config.url,data:$(e.data),headers:e.header||e.headers,statusCode:e.statusCode||200}),t(r.response)},failed:e}));var n=r.config.onUploadProgress;n&&(r.requestTask.onProgressUpdate?de(r.requestTask,n):console.warn("`wx.uploadFile` does not support upload progress event in the current version!"))}):Promise.reject(new Error("`wx.request` does not exist, please check the environment!"))}}]),t}();function me(o,s,i){return o?new Promise(function(e,t){o.onreadystatechange=function(){4===o.readyState&&e(i(o.response))},s.responseType&&(o.responseType=s.responseType.toLowerCase()),s.withCredentials&&(o.withCredentials=s.withCredentials),s.timeout&&(o.timeout=s.timeout),o.ontimeout=function(){return t(new Error("Request time out"))},s.onDownloadProgress&&(o.onprogress=function(e){var t=e.total,n=e.loaded;return s.onDownloadProgress({total:t,transmitted:n,progress:n/t})}),s.onUploadProgress&&(o.upload.onprogress=function(e){var t=e.total,n=e.loaded;return s.onUploadProgress({total:t,transmitted:n,progress:n/t})});var n=s.url,r=null;"GET"===s.method?(delete s.headers["Content-Type"],n=W("",s.url,s.data)):(r=Q(s.data,s.headers["Content-Type"],s.convertFormDataOptions),"multipart/form-data"!==s.headers["Content-Type"]&&r||delete s.headers["Content-Type"]),o.open(s.method,n,!0),Object.keys(s.headers).forEach(function(e){o.setRequestHeader(e,s.headers[e])}),o.send(r)}):Promise.reject(new Error("The environment does not support XHR"))}function ve(e){return e.split(/[\n\r]+/g).filter(Boolean).reduce(function(e,t){var n=y(t.split(": "),2),r=n[0],o=n[1];return h(h({},e),{},u({},r,o))},{})}var be=function(){c(r,Z);var n=d(r);function r(e){var t;return i(this,r),u(p(t=n.call(this,e)),"name",o.EngineName.XHR),t.requestInstance=XMLHttpRequest?new XMLHttpRequest:ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null,t.requestTask=t.requestInstance,t}return a(r,[{key:"abort",value:function(){this.requestTask.abort()}}]),r}(),we=function(){c(t,be);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"open",value:function(){var t=this;return me(this.requestInstance,this.config,function(e){return t.response={url:t.config.url,data:e,statusCode:t.requestInstance.status,headers:ve(t.requestInstance.getAllResponseHeaders())},t.response})}}]),t}(),ke=function(){c(t,be);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"open",value:function(){var r=this;return me(this.requestInstance,h(h({},this.config),{},{method:"GET",responseType:"blob",withCredentials:this.config.withCredentials||!1}),function(n){return z(n,!!r.config.filePath).then(function(e){var t=J(ve(r.requestInstance.getAllResponseHeaders()));return n&&(n.name=t),r.response={url:r.config.url,tempFilePath:e,filePath:r.config.filePath,statusCode:r.requestInstance.status,blob:n,headers:ve(r.requestInstance.getAllResponseHeaders()),filename:t},r.response})})}}]),t}(),Pe=function(){c(t,be);var e=d(t);function t(){return i(this,t),e.apply(this,arguments)}return a(t,[{key:"open",value:function(){var t=this;return me(this.requestInstance,h(h({},this.config),{},{data:h(h({},this.config.extraData),{},u({},this.config.fileKey,this.config.file)),method:"POST",responseType:"json",withCredentials:this.config.withCredentials||!1,headers:h(h({},this.config.headers),{},{"Content-Type":"multipart/form-data"})}),function(e){return t.response={url:t.config.url,data:e,statusCode:t.requestInstance.status||200,headers:ve(t.requestInstance.getAllResponseHeaders())},t.response})}}]),t}(),je=function(){function l(){var n=this,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:o.EngineName.XHR,t=1<arguments.length?arguments[1]:void 0;i(this,l),u(this,"engineName",o.EngineName.XHR),u(this,"config",{baseURL:"",method:"GET",timeout:3e4,responseType:"json",withCredentials:!1,headers:{"content-type":"application/x-www-form-urlencoded"}}),u(this,"interceptors",{request:{interceptors:[],use:function(e){n.interceptors.request.interceptors.push(e)}},response:{interceptors:{resolves:[],rejects:[]},use:function(e,t){e&&n.interceptors.response.interceptors.resolves.push(e),t&&n.interceptors.response.interceptors.rejects.push(t)}}}),this.engineName=e,this.config=G(this.config,t)}return a(l,[{key:"calcConfig",value:function(e){var n=this,r=G(this.config,e),o=W(r.baseURL,e.url),s=function(){};return{config:new Promise(function(e,t){n.interceptors.request.interceptors.reduce(function(e,t){return e.then(function(e){return r=e,Promise.resolve(t(e))})},Promise.resolve(h(h({},r),{},{url:o}))).then(e),s=function(){return t(l.createError({$request:{config:r,name:n.engineName,requestInstance:null,requestTask:null,response:null,aborted:!0},data:null,statusCode:0,url:o,headers:{}},void 0,"Request aborted while processing configuration"))}}),abort:s}}},{key:"getRequestInstance",value:function(e){return new(this.engineName===o.EngineName.WX?pe:this.engineName===o.EngineName.MY?ue:this.engineName===o.EngineName.Fetch?oe:we)(e)}},{key:"getDownloadInstance",value:function(e){return new(this.engineName===o.EngineName.WX?ye:this.engineName===o.EngineName.MY?fe:this.engineName===o.EngineName.Fetch?se:ke)(e)}},{key:"getUploadInstance",value:function(e){return new(this.engineName===o.EngineName.WX?ge:this.engineName===o.EngineName.MY?le:this.engineName===o.EngineName.Fetch?ie:Pe)(e)}},{key:"checkStatus",value:function(e){return this.config.statusValidator(e.statusCode)?Promise.resolve(e):Promise.reject(e)}},{key:"request",value:function(e,t,n){var r,o,s=this,i=this.interceptors.response.interceptors,a=this.calcConfig(h(h({},n),{},{url:e,data:t})),u=a.config,c=a.abort,f=new ee(function(e,t){r=e,o=t});return f.abort=c,u.then(function(e){var n=s.getRequestInstance(e);f.abort=function(){n.abort(),n.aborted=!0};n.open().then(function(e){return i.resolves.reduce(function(e,t){return e.then(t).then(function(e){return l.dealResponse(e,n)})},Promise.resolve(s.checkStatus(l.dealResponse(e,n))))}).then(r).catch(function(e){return i.rejects.reduce(function(e,t){return e.then(function(e){return Promise.reject(e)}).catch(function(e){return t(l.createError(e,n))})},Promise.resolve(l.createError(e,n))).then(function(e){return Promise.reject(e)})}).catch(o)}).catch(o),f}},{key:"downloadFile",value:function(e){var n,r,o=this,t=this.calcConfig(e),s=t.config,i=t.abort,a=new ee(function(e,t){n=e,r=t});return a.abort=i,s.then(function(e){var t=o.getDownloadInstance(e);a.abort=function(){t.abort(),t.aborted=!0},t.open().then(function(e){return o.checkStatus(l.dealResponse(e,t))}).then(n).catch(function(e){return e.$request=t,Promise.reject(e)}).catch(r)}).catch(r),a}},{key:"uploadFile",value:function(e){var n,r,o=this,t=this.calcConfig(e),s=t.config,i=t.abort,a=new ee(function(e,t){n=e,r=t});return a.abort=i,s.then(function(e){var t=o.getUploadInstance(e);a.abort=function(){t.abort(),t.aborted=!0},t.open().then(function(e){return o.checkStatus(l.dealResponse(e,t))}).then(n).catch(function(e){return e.$request=t,Promise.reject(e)}).catch(r)}).catch(r),a}},{key:"get",value:function(e,t,n){return this.request(e,t,h(h({},n),{},{method:"get"}))}},{key:"post",value:function(e,t,n){return this.request(e,t,h(h({},n),{},{method:"post"}))}},{key:"put",value:function(e,t,n){return this.request(e,t,h(h({},n),{},{method:"put"}))}},{key:"delete",value:function(e,t,n){return this.request(e,t,h(h({},n),{},{method:"delete"}))}}],[{key:"createError",value:function(t,e,n){function r(){}var o=(o=K(t))||K(t.data,n||(e&&e.aborted?"Request aborted":"Network request error: unknown message!"));r.prototype=new Error(o);var s=new r;return"object"===P(t)&&Object.keys(t).forEach(function(e){s[e]=t[e]}),e&&(s.$request=e),s}},{key:"dealResponse",value:function(e,t){return"object"===P(e)&&null!==e&&(e.$request=t),e}}]),l}();o.Http=je,o.RequestPromise=ee,o.default=je,Object.defineProperty(o,"__esModule",{value:!0})});