@uni-use/request
Version:
An easy to use axios based http client combinatorial api with support for return sequentially
8 lines (7 loc) • 1.98 kB
JavaScript
/*!
* @uni-use/request v1.6.0-beta.1
* An easy to use axios based http client combinatorial api with support for return sequentially
* (c) 2022-2023 saqqdy<https://github.com/saqqdy>
* Released under the MIT License.
*/
import{__assign as e,__awaiter as t,__generator as r,__read as n}from"tslib";import u from"axios";import s from"axios-series";import a from"use-until";import{shallowRef as o,ref as i}from"vue-demi";import l from"await-to-done";var c,v,f={unique:!0,orderly:!0,refetch:!1,immediate:!0};function m(m,d,p){d=Object.assign({},f,d);var h=p||d||{},b=h.unique,q=h.orderly,x=h.immediate,y=h.beforeRequest,g=h.afterRequest,w=h.onResponseError,C=h.onError,R=o(null),T=o(null),E=i(!1),F=i(!1),P=i(null),j=i(""),B=o();function O(e){return t(this,void 0,void 0,(function(){var t,u,s,a,o;return r(this,(function(r){switch(r.label){case 0:return y?[4,y(e)]:[3,2];case 1:e=r.sent(),r.label=2;case 2:return F.value=!1,E.value=!0,[4,l(v(e))];case 3:if(t=n.apply(void 0,[r.sent(),2]),u=t[0],!(s=t[1]))return[3,10];if(B.value=s,P.value=s.status,j.value=s.statusText,!g)return[3,8];r.label=4;case 4:return r.trys.push([4,6,,7]),a=R,[4,g(s)];case 5:return a.value=r.sent(),[3,7];case 6:return o=r.sent(),u=o,w&&w(u),[3,7];case 7:return[3,9];case 8:R.value=s.data,r.label=9;case 9:return[3,11];case 10:(null==u?void 0:u.response)?(B.value=u.response,P.value=u.response.status,j.value=u.response.statusText,w&&w(B.value)):C&&C(u),r.label=11;case 11:return T.value=u,F.value=!0,E.value=!1,[2,R.value]}}))}))}c||(c=u.create({timeout:1e4})),v||(v=s(c,{unique:b,orderly:q,onCancel:function(e){console.info("onCancel => ",e.message,e.config)}}));var k={isFinished:F,statusCode:P,statusText:j,response:B,error:T,data:R,isFetching:E,request:O};return x&&Promise.resolve().then((function(){return O(d)})),e(e({},k),{then:function(e,t){return new Promise((function(e,t){a(F).toBe(!0).then((function(){return e(k)})).catch((function(e){return t(e)}))})).then(e,t)}})}export{m as default};