UNPKG

@vue-composable/axios

Version:
2 lines (1 loc) 1.93 kB
var vueComposableAxios=function(e,t,r){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var l=u(t);const n=e=>"string"==typeof e,o=e=>"boolean"==typeof e,a=e=>null!==e&&"object"==typeof e;function s(e,t=!1){const u=r.ref(!1),s=r.ref(null);let c;const v=function(e,t){if(!e)throw new Error(`[usePromise] argument can't be '${e}'`);if("function"!=typeof e)throw new Error("[usePromise] expects function, but received "+typeof e);const[u,l]=o(t)?[t,!1]:a(t)?[t.lazy,t.throwException]:[!1,!1],n=r.ref(!1),s=r.ref(null),c=r.ref(null),v=r.ref(),i=async(...t)=>{n.value=!0,s.value=null;const u=t&&e.length!==t.length&&t.length>0&&o(t[t.length-1])?t[t.length-1]:l,a=v.value=e(...t);try{const e=await a;return v.value===a&&(c.value=e),e}catch(e){return r.toRaw(v.value)===r.toRaw(a)&&(s.value=e,c.value=null),u?a:void 0}finally{v.value===a&&(n.value=!1)}};return u||i(),{exec:i,result:c,promise:v,loading:n,error:s}}((async t=>{c=l.CancelToken.source(),u.value=!1,s.value=null;const r=n(t)?{url:t}:t;return e.request({cancelToken:c.token,...r})}),{lazy:!0,throwException:t}),i=r.computed((()=>v.result.value&&v.result.value.data||v.error.value&&v.error.value.response&&v.error.value.response.data||null)),f=r.computed((()=>v.result.value&&v.result.value.status||v.error.value&&v.error.value.response&&v.error.value.response.status||null)),p=r.computed((()=>v.result.value&&v.result.value.statusText||v.error.value&&v.error.value.response&&v.error.value.response.statusText||null));return{...v,client:e,data:i,status:f,statusText:p,cancel:e=>{c&&(c.cancel(e),u.value=!0,s.value=e)},isCancelled:u,cancelledMessage:s}}return e.makeAxios=s,e.useAxios=function(e,t,r=!1){const u=n(e)||o(e)?a(t)?t:void 0:e;r=o(e)?e:o(t)?t:r;const c=s(l.create(u),r);return"string"==typeof e?c.exec({...u,url:e},!1):u&&u.url&&c.exec(u,!1),c},Object.defineProperty(e,"__esModule",{value:!0}),e}({},axios,vueCompositionApi);