UNPKG

@vue-composable/axios

Version:
2 lines (1 loc) 1.92 kB
var vueComposableAxios=function(e,r,t,u){"use strict";function l(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var n=l(r);const o=e=>"string"==typeof e,a=e=>"boolean"==typeof e,s=e=>null!==e&&"object"==typeof e;function c(e,r=!1){const l=u.ref(!1),c=u.ref(null);let v;const i=function(e,r){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]=a(r)?[r,!1]:s(r)?[r.lazy,r.throwException]:[!1,!1],n=t.ref(!1),o=t.ref(null),c=t.ref(null),v=t.ref(),i=async(...r)=>{n.value=!0,o.value=null;const u=r&&e.length!==r.length&&r.length>0&&a(r[r.length-1])?r[r.length-1]:l,s=v.value=e(...r);try{const e=await s;return v.value===s&&(c.value=e),e}catch(e){return t.toRaw(v.value)===t.toRaw(s)&&(o.value=e,c.value=null),u?s:void 0}finally{v.value===s&&(n.value=!1)}};return u||i(),{exec:i,result:c,promise:v,loading:n,error:o}}((async r=>{v=n.CancelToken.source(),l.value=!1,c.value=null;const t=o(r)?{url:r}:r;return e.request({cancelToken:v.token,...t})}),{lazy:!0,throwException:r}),f=u.computed((()=>i.result.value&&i.result.value.data||i.error.value&&i.error.value.response&&i.error.value.response.data||null)),p=u.computed((()=>i.result.value&&i.result.value.status||i.error.value&&i.error.value.response&&i.error.value.response.status||null)),d=u.computed((()=>i.result.value&&i.result.value.statusText||i.error.value&&i.error.value.response&&i.error.value.response.statusText||null));return{...i,client:e,data:f,status:p,statusText:d,cancel:e=>{v&&(v.cancel(e),l.value=!0,c.value=e)},isCancelled:l,cancelledMessage:c}}return e.makeAxios=c,e.useAxios=function(e,r,t=!1){const u=o(e)||a(e)?s(r)?r:void 0:e;t=a(e)?e:a(r)?r:t;const l=c(n.create(u),t);return"string"==typeof e?l.exec({...u,url:e},!1):u&&u.url&&l.exec(u,!1),l},Object.defineProperty(e,"__esModule",{value:!0}),e}({},axios,Vue,Vue);