maple-request
Version:
Axios Request Manager for Vue
1 lines • 5.28 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("axios"));else if("function"==typeof define&&define.amd)define(["axios"],t);else{var r="object"==typeof exports?t(require("axios")):t(e.axios);for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,function(r){return function(r){var n={};function o(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}return o.m=r,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/",o(o.s=2)}([function(e,t){e.exports=r},function(t,e){function r(e){return(r="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 n(e){return"function"==typeof Symbol&&"symbol"===r(Symbol.iterator)?t.exports=n=function(e){return r(e)}:t.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":r(e)},n(e)}t.exports=n},function(e,t,r){e.exports=r(4)},function(e,t){},function(e,t,r){"use strict";r.r(t);r(3);var n=function(e,t,r,n,o){void 0===e&&(e="get"),void 0===t&&(t=""),void 0===n&&(n=!1),void 0===o&&(o=!1),this.method=e,this.url=t,this.baseURL=r,this.textMark=n,this.openMark=o},o={get:function(e,t){return new n("get",e,t)},post:function(e,t){return new n("post",e,t)},delete:function(e,t){return new n("delete",e,t)},put:function(e,t){return new n("put",e,t)},patch:function(e,t){return new n("put",e,t)},head:function(e,t){return new n("put",e,t)},options:function(e,t){return new n("put",e,t)},text:function(e,t){return new n("get",e,t,!0)},open:function(e,t){return new n("get",e,t,!1,!0)}},s=function(){},i=r(0),a=r.n(i);function q(e){if(void 0===e&&(e=5),0<e){var t=parseInt(e.toString()),r=Math.random()*Math.pow(10,t);return parseInt(r.toFixed(0))}throw new Error("the param fix must be more then 0")}var u=r(1),M=r.n(u);function E(e,t){for(var r=0;r<e.length;r++)if(e[r]===t){e.splice(r,1);break}}var f={install:function(e,m){var t=m||{},r=t.create,n=void 0===r?{}:r,o=t.apis,g=void 0===o?new s:o,i=t.interceptors,u=void 0===i?{request:function(e){return e},requestError:function(e){return e},response:function(e){return e},responseError:function(e){return e}}:i,w=a.a.create(n);w.interceptors.request.use(u.request,u.requestError),w.interceptors.response.use(u.response,u.responseError);var x=[],S={};function j(e){var t=S[e];t.length&&!0===t[0].status&&(t[0].resolve(t[0].response),S[e].shift(),j(e))}e.prototype.$request=function(e,t,o,i){var u=this;void 0===o&&(o=!1),void 0===i&&(i=!1);var s=g[e];if(m&&m.pre&&m.pre.request&&m.pre.request.apply(this,[t]),!s)throw new Error("there is no api named "+e);var r=(s=function e(t){if(null==t||"object"!=M()(t))return t;if(t instanceof Date)return(n=new Date).setTime(t.getTime()),n;if(t instanceof Array){for(var r=t.length,n=new Array,o=0;o<r;++o)n[o]=e(t[o]);return n}if(t instanceof Object){for(var i in n={},t)t.hasOwnProperty(i)&&(n[i]=e(t[i]));return n}throw new Error("Unable to copy this object")}(s)).url;if(r&&/\${.*}/.test(r)){for(var n=0,a=Object.keys(t);n<a.length;n++){var f=a[n],p=new RegExp("\\${"+f+"}");t[f]&&p.test(r)&&(r=r.replace(p,t[f]),delete t[f])}s.url=r}if(!s.textMark&&!s.openMark){var c="",l="";return new Promise(function(n,r){o&&(c="loading-"+q(10),x.length||m&&m.loading&&m.loading.start.apply(u),x.push(c)),"string"==typeof i&&(l="query-"+q(12),S[i]||(S[i]=[]),S[i].push({stamp:l,status:!1,response:null,resolve:n}));var e={url:s.url,method:s.method};"get"===s.method?e.params=t:e.data=t,s.baseURL&&(e.baseURL=s.baseURL),w.request(e).then(function(e){if(m&&m.pre&&m.pre.response&&m.pre.response.apply(u,[e]),"string"==typeof i){var t=S[i].filter(function(e){return e.stamp===l});if(t.length){var r=t[0];r.response=e,r.status=!0,j(i)}}else n(e)}).catch(function(e){if(m&&m.pre&&m.pre.responseError&&m.pre.responseError.apply(u,[e]),"string"==typeof i){var t=S[i].filter(function(e){return e.stamp===l});t.length&&(E(S[i],t[0]),j(i))}r(e)}).finally(function(){E(x,c),!x.length&&o&&m&&m.loading&&m.loading.close&&m.loading.close.apply(u)})})}var y,d="";m&&m.create&&m.create.baseURL&&(d=m.create.baseURL),s.baseURL&&(d=s.baseURL);var b=s.url,v="";for(var h in t)v+=h+"="+t[h]+"&";if(y=""+d+b+"?"+(v=v.replace(/&$/,"")),!s.openMark)return y;window.open(y)}}};r.d(t,"MapleRequestConfig",function(){return p}),r.d(t,"api",function(){return o});var p=function(){this.create={},this.apis={}},c={install:function(e,t){e.use(f,t)}};t.default=c}])});