UNPKG

forget-api

Version:

无需封装 Axios,无需写接口请求函数,无需维护返回值类型,把这些琐碎重复的事情交给工具来处理,让精力聚焦在核心功能的实现上。

9 lines (8 loc) 1.67 kB
/** * forget-api@0.0.0-alpha.2 * * @author Ambit Tsai <ambit_tsai@qq.com> * @license MulanPSL-2.0 */ import{__awaiter as r,__generator as e}from"tslib";import{entries as t,assign as n,isPlainObject as o,noop as u}from"lodash-es";function s(r,e){for(var n={},o=0,u=t(e);o<u.length;o++){var s=u[o],i=s[0],a=s[1];n[i]=c(a[0],r+a[1])}return n}var i=["GET","HEAD"],a={beforeRequest:u,responded:function(r){return r.json()},errorCaptured:function(r){throw r}};function c(u,s){var c=this,d=function(r){for(var e=[],t=0,n=r.split(/(\/:[^/]+)/g);t<n.length;t++){var o=n[t];o.indexOf("/:")?e.push(o):e.push("/",{key:o.substring(2)})}return e}(s);return function(p,h){return void 0===h&&(h={}),r(c,void 0,void 0,(function(){var r,c,v,l,y;return e(this,(function(e){switch(e.label){case 0:h.method||(h.method=u),o(p)?(c=n({},p),s=f(d,c),-1===i.indexOf(h.method.toUpperCase())?r=JSON.stringify(c):(v=t(c).map((function(r){var e=r[0],t=r[1];return"".concat(e,"=").concat(t)})).join("&"),v&&(s+="?"+v))):(s=f(d),r=Array.isArray(p)?JSON.stringify(p):p),e.label=1;case 1:return e.trys.push([1,5,,6]),[4,a.beforeRequest(h)];case 2:return e.sent(),[4,fetch(s,n({body:r},h))];case 3:return l=e.sent(),[4,a.responded(l)];case 4:return[2,e.sent()];case 5:return y=e.sent(),[2,a.errorCaptured(y)];case 6:return[2]}}))}))}}function f(r,e){void 0===e&&(e={});for(var t="",n=0,o=r;n<o.length;n++){var u=o[n];"object"==typeof u?(t+=e[u.key]||"",delete e[u.key]):t+=u}return t}function d(r){a.beforeRequest=r}function p(r){a.responded=r}function h(r){a.errorCaptured=r}export{s as createApis,d as onBeforeRequest,h as onErrorCaptured,p as onResponded}; //# sourceMappingURL=request.js.map