@zibu/common-mina
Version:
微信小程序通用逻辑功能模块。包含AjaxService、clone、dataFormat
2 lines • 7.66 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}("undefined"!=typeof window?window:this,function(){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=1)}([,function(e,t,n){"use strict";n.r(t);var r={JSON:"application/json",FORM:"application/x-www-form-urlencoded",FORMDATA:"multipart/form-data"};function o(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 i=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.interceptors={request:{},response:{}},this.defaults={headers:{common:{"Content-Type":"application/json"}}},this.initInterceptors(),this.initRequestMethods()}return function(e,t,n){t&&o(e.prototype,t),n&&o(e,n)}(e,[{key:"initInterceptors",value:function(){var e=function(e,t){this._hooks.push({success:e,fail:t})};this.interceptors.request={_hooks:[],use:e},this.interceptors.response={_hooks:[],use:e}}},{key:"initRequestMethods",value:function(){var e=this;["post","delete","put","get"].forEach(function(t){e[t]=function(n,r,o){o=Object.assign({url:n,header:e.defaults.headers.common,data:r,method:t.toUpperCase()},o);for(var i=e.interceptors.request._hooks,u=i.length-1;u>-1;u--){var s=i[u];o=s.success(o)}return new Promise(function(t,n){o.success=function(n){e.interceptors.response._hooks.forEach(function(e){n=e.success(n)}),t(n)},o.fail=function(t){e.interceptors.response._hooks.forEach(function(e){t=e.fail(t)}),n(t)},wx.request(o)})}})}}]),e}();function u(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 s=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),t=t.toUpperCase(),this.contentType=r[t],this.request=null,this.cancelToken="",this.request=new i,this.cancelFun=function(){n.cancelToken=(new Date).getTime(),n.request.cancelToken=n.cancelToken,n.request.abort()}}return function(e,t,n){t&&u(e.prototype,t),n&&u(e,n)}(e,null,[{key:"isCancel",value:function(e){return e.cancelToken===this.cancelToken}}]),e}();function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,s=e[Symbol.iterator]();!(r=(u=s.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function a(e){return(a="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)}}var l="string"==typeof __HOST__?__HOST__:"",p=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"form",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.requestInstance=null,this.cancel=function(){},this.originalUrl=t||r+"{/api}{/version}{/module}{/action}{/id}",this.sections=[],this.isReturnWholeResponse=o,this.init(n)}return function(e,t,n){t&&f(e.prototype,t),n&&f(e,n)}(e,[{key:"init",value:function(e){var t=this,n=new s(e);this.requestInstance=n.request,this.cancel=this.requestInstance.cancelFun,this.setHeader("Content-Type",n.contentType),this.injectRequestHook(function(e){var n=e.data;return"object"===a(n)&&n?(e.data=t.processRequestParam(n,e.header["Content-Type"]),e):e}),this.injectResponseHook(function(e){return t.isReturnWholeResponse?e:e.data},function(e){return s.isCancel(e)?{type:"cancel",body:e}:e.request?{type:"response",body:e.request}:e.response?{type:"response",body:e.response}:{type:"other",body:e}});for(var r=/\{\/([^}]+)\}/g;r.lastIndex<this.originalUrl.length;){var o=r.exec(this.originalUrl);if(!o)break;this.sections.push(o)}}},{key:"setHeader",value:function(e,t,n){e&&t&&(n=n||"common",this.requestInstance.defaults.headers[n][e]=t)}},{key:"injectRequestHook",value:function(e){"function"==typeof e&&this.requestInstance.interceptors.request.use(function(t){return e(t)})}},{key:"processRequestParam",value:function(e,t){var n=e.constructor===FormData,r=n?e.entries():Object.entries(e),o=Array.isArray(e)?[]:{},i={},u=!0,s=!1,a=void 0;try{for(var f,l=r[Symbol.iterator]();!(u=(f=l.next()).done);u=!0){var p=c(f.value,2),h=p[0],y=p[1];y&&y.constructor===File?i[h]=y:o[h]=y}}catch(e){s=!0,a=e}finally{try{u||null==l.return||l.return()}finally{if(s)throw a}}if(e=JSON.parse(JSON.stringify(o)),Object.keys(i).forEach(function(t){e[t]=i[t]}),(t||this.contentType)===ContentType.FORM){var v=[];Object.keys(e).forEach(function(t){var n=e[t];v.push("".concat(t,"=").concat(n))}),e=v.join("&")}else if(n){var d=new FormData;Object.keys(e).forEach(function(t){return d.append(t,e[t])}),e=d}return e}},{key:"injectResponseHook",value:function(e,t){this.requestInstance.interceptors.response.use(function(t){if("function"!=typeof e)return t;var n=e(t);return void 0!==n?n:void 0},function(e){if("function"!=typeof t)return e;var n=t(e);return void 0!==n?n:void 0})}},{key:"post",value:function(e,t,n){return this.execHttpRequest("post",e,t,n)}},{key:"delete",value:function(e,t,n){return this.execHttpRequest("delete",e,t,n)}},{key:"put",value:function(e,t,n){return this.execHttpRequest("put",e,t,n)}},{key:"patch",value:function(e,t,n){return this.execHttpRequest("patch",e,t,n)}},{key:"get",value:function(e,t,n){return this.execHttpRequest("get",e,t,n)}},{key:"execHttpRequest",value:function(e,t,n,r){if(this.requestInstance&&"function"==typeof this.requestInstance[e])return this.requestInstance[e](this.urlMatch(t),n,r);throw new Error("AjaxService:请求的方法不存在")}},{key:"urlMatch",value:function(e){var t=this,n=this.originalUrl;return e.hasOwnProperty("host")&&(n=n.replace(/http[s]?:\/\/[^{]+/,e.host)),this.sections.forEach(function(r){var o=r[1],i=e.hasOwnProperty(o)?e[o]:t[o];i=i?"/"+i:"";var u=new RegExp(r[0]);n=n.replace(u,i)}),n}}]),e}();!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(p,"ContentType",r);t.default=p}])});
//# sourceMappingURL=AjaxService.js.map