axios-rest-api
Version:
Simple Axios wrapper for simple REST Api requests
1 lines • 8.95 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("underscore"),require("axios"));else if("function"==typeof define&&define.amd)define(["underscore","axios"],t);else{var n="object"==typeof exports?t(require("underscore"),require("axios")):t(e.underscore,e.axios);for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(window,function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t,n){"use strict";n.r(t);var r=n(0),o=n.n(r),u=n(1),i=n.n(u);function s(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)}}var a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,r;return t=e,(n=[{key:"axios",value:function(){return i.a}},{key:"get",value:function(e,t,n){return this.request("get","get",null,e,t,n)}},{key:"load",value:function(e,t,n){return this.request("get","load",null,e,t,n)}},{key:"cget",value:function(e,t,n){return this.request("get","cget",null,e,t,n)}},{key:"send",value:function(e,t,n){return this.request("get","send",null,e,t,n)}},{key:"post",value:function(e,t,n,r){return this.request("post","post",e,t,n,r)}},{key:"save",value:function(e,t,n,r){return this.request("post","save",e,t,n,r)}},{key:"new",value:function(e,t,n,r){return this.request("post","new",e,t,n,r)}},{key:"edit",value:function(e,t,n,r){return this.request("post","edit",e,t,n,r)}},{key:"remove",value:function(e,t,n,r){return this.request("post","remove",e,t,n,r)}},{key:"delete",value:function(e,t,n){return this.request("delete","delete",null,e,t,n)}},{key:"put",value:function(e,t,n,r){return this.request("put","put",e,t,n,r)}},{key:"patch",value:function(e,t,n,r){return this.request("patch","patch",e||{},t,n,r)}},{key:"option",value:function(e,t,n){return this.request("option","option",null,e,t,n)}},{key:"axiosData",value:function(e,t){return e||["post","put","patch"].includes(t)}},{key:"request",value:function(e,t,n,r,o,u){var s=null,a=this.router.setUrl(t,r,o);return this.config.params=this.router.params,s=this.axiosData(n,e)?i.a[e](a,n,this.config):i.a[e](a,this.config),this.clear(),this.delay(s,u)}},{key:"delay",value:function(e,t){var n=t||this.wait||0;return n<this.wait&&(n=this.wait),0==n||"undefined"==typeof Promise?e:new Promise(function(t){o.a.delay(t,n,e)})}}])&&s(t.prototype,n),r&&s(t,r),e}();function c(e){return(c="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 f(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 l(e,t){return!t||"object"!==c(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var h=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),l(this,y(t).apply(this,arguments))}var n,r,u;return function(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&&p(e,t)}(t,a),n=t,(r=[{key:"define",value:function(e,t){this.resources[e]=t}},{key:"extend",value:function(e,t){o.a.extend(this.resources[e],t)}},{key:"default",value:function(e,t){return void 0!==t&&(this.defaults[e]=t),this.defaults[e]}},{key:"setDelay",value:function(e){return this.wait=e?1e3*e:0,this}},{key:"setHeaders",value:function(e){e&&o.a.extend(this.config,{headers:e})}},{key:"setBaseURL",value:function(e){var t=e||this.defaults.baseURL||null;t&&(this.config.baseURL=t)}},{key:"isAuth",value:function(){return this.config.headers&&this.config.headers.Authorization}},{key:"saveAuthKey",value:function(e,t){this.extend(t,{key:e})}},{key:"setAuthKey",value:function(e,t){var n=e||this.defaults.key;return n&&this.setHeaders({Authorization:"Bearer ".concat(n)}),t&&this.saveAuthKey(n,t),this}},{key:"setAxiosConfig",value:function(e){o.a.extend(this.config,e)}},{key:"dumpAxiosConfig",value:function(){return this.config}}])&&f(n.prototype,r),u&&f(n,u),t}(),v={get:"{id}",cget:"",post:"",delete:"{id}",put:"{id}",patch:"{id}",option:"{id}",load:"",send:"",new:"new",save:"save",edit:"edit/{id}",remove:"remove/{id}"};function d(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)}}var b=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.root="/",this.url="",this.routing=v,this.params={}}var t,n,r;return t=e,(n=[{key:"init",value:function(e,t,n){var r=n?"".concat(n,"/"):"",o=t?"".concat(t,"/"):"";return this.root="".concat(e,"/").concat(o).concat(r),this}},{key:"setRouting",value:function(e,t){return this.routing={route:t},o.a.extend(this.routing,v,e),this}},{key:"setParams",value:function(e,t){var n=t.replace(/\{(.*?)\}/gi,function(t,n){var r=e[n];return delete e[n],r});return this.params=e||{},n}},{key:"getUrlPath",value:function(e){var t,n=this.routing.route,r=this.routing[e];return(t=n||"")&&r?t="".concat(t,"/").concat(r):r&&(t=r),t}},{key:"setUrl",value:function(e,t,n){var r,o=this.root;return this.isAbsolute(n)?(o="",r=n):r=n||this.getUrlPath(e),r=this.setParams(t,r),this.url=o+r,this.url}},{key:"isAbsolute",value:function(e){return new RegExp("(www|://)").test(e)}}])&&d(t.prototype,n),r&&d(t,r),e}();function g(e){return(g="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 k(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 m(e,t){return!t||"object"!==g(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function x(e,t){return(x=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.d(t,"default",function(){return O});var O=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=m(this,w(t).call(this))).resources=e||[],n.defaults={},n.config={},n.router=new b,n}var n,r,u;return function(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&&x(e,t)}(t,h),n=t,(r=[{key:"clear",value:function(){this.config={}}},{key:"res",value:function(e,t){return this.setApi(t||e),this.setResource(e)}},{key:"getConfig",value:function(e){var t=this.resources[e]||{},n=Object.assign({},t);return o.a.defaults(n,this.resources.default)}},{key:"setApi",value:function(e){var t=this.getConfig(e);this.router.init(t.host,t.prefix,t.version),this.setDelay(t.delay),this.isAuth()||this.setAuthKey(t.key)}},{key:"setResource",value:function(e){var t=this.getConfig(e);return this.router.setRouting(t.routing||{},e),this}},{key:"baseURL",value:function(){return this.root}},{key:"lastURL",value:function(){return this.router.url}}])&&k(n.prototype,r),u&&k(n,u),t}()}])});