UNPKG

wretch-middlewares

Version:

Middlewares for the wretch library

3 lines (2 loc) 3.5 kB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).wretchMiddlewares={})}(this,(function(e){"use strict";var n=function(e,n){return n.skipDedupe||"GET"!==n.method},t=function(e,n){return n.method+"@"+e},r=function(e){return e.clone()},o=function(e,n){return n.skipCache||"GET"!==n.method},i=function(e,n){return n.method+"@"+e},u=function(e,n){return!1},c=function(e,n){return null},f=function(e){return e.ok},d=function(e,n){return e*n},s=function(e){return e&&e.ok},a=function(e){return e.clone()};e.dedupe=function(e){var o=void 0===e?{}:e,i=o.skip,u=void 0===i?n:i,c=o.key,f=void 0===c?t:c,d=o.resolver,s=void 0===d?r:d,a=new Map;return function(e){return function(n,t){if(u(n,t))return e(n,t);var r=f(n,t);if(a.has(r))return new Promise((function(e,n){a.get(r).push([e,n])}));a.set(r,[]);try{return e(n,t).then((function(e){return a.get(r).forEach((function(n){return(0,n[0])(s(e))})),a.delete(r),e})).catch((function(e){throw a.get(r).forEach((function(n){n[0];return(0,n[1])(e)})),a.delete(r),e}))}catch(e){return a.delete(r),Promise.reject(e)}}}},e.delay=function(e){return function(n){return function(t,r){return new Promise((function(o){return setTimeout((function(){return o(n(t,r))}),e)}))}}},e.retry=function(e){var n=void 0===e?{}:e,t=n.delayTimer,r=void 0===t?500:t,o=n.delayRamp,i=void 0===o?d:o,u=n.maxAttempts,c=void 0===u?10:u,f=n.until,l=void 0===f?s:f,h=n.onRetry,v=void 0===h?null:h,p=n.retryOnNetworkError,m=void 0!==p&&p,y=n.resolver,w=void 0===y?a:y;return function(e){return function(n,t){var o=0,u=function(f,d){return Promise.resolve(l(f&&f.clone(),d)).then((function(s){return s?d?Promise.reject(d):f:(o++,!c||o<=c?new Promise((function(u){var c=i(r,o);setTimeout((function(){"function"==typeof v?Promise.resolve(v({response:f&&w(f),error:d,url:n,options:t})).then((function(r){void 0===r&&(r={}),u(e(r.url||n,r.options||t))})):u(e(n,t))}),c)})).then(u).catch((function(e){if(!m)throw e;return u(null,e)})):Promise.reject(d||new Error("Number of attempts exceeded.")))}))};return e(n,t).then(u).catch((function(e){if(!m)throw e;return u(null,e)}))}}},e.throttlingCache=function(e){var n=void 0===e?{}:e,t=n.throttle,r=void 0===t?1e3:t,d=n.skip,s=void 0===d?o:d,a=n.key,l=void 0===a?i:a,h=n.clear,v=void 0===h?u:h,p=n.invalidate,m=void 0===p?c:p,y=n.condition,w=void 0===y?f:y,g=n.flagResponseOnCacheHit,P=void 0===g?"__cached":g,E=new Map,k=new Map,T=new Set,b=function(e){r&&!T.has(e)&&(T.add(e),setTimeout((function(){T.delete(e)}),r))},j=function(e){return function(n,t){var r=l(n,t),o=m(n,t);if(o&&(o instanceof Array||(o=[o]),o.forEach((function(e){"string"==typeof e?E.delete(e):e instanceof RegExp&&E.forEach((function(n,t){e.test(t)&&E.delete(t)}))}))),v(n,t)&&E.clear(),s(n,t))return e(n,t);if(T.has(r)){if(E.has(r)){var i=E.get(r).clone();return P&&Object.defineProperty(i,P,{value:r,enumerable:!1}),Promise.resolve(i)}if(k.has(r))return new Promise((function(e,n){k.get(r).push([e,n])}))}return k.has(r)||k.set(r,[]),b(r),e(n,t).then((function(e){return w(e.clone())&&E.set(r,e.clone()),k.get(r).forEach((function(n){return(0,n[0])(e.clone())})),k.delete(r),e})).catch((function(e){throw k.get(r).forEach((function(n){return n[0],(0,n[1])(e)})),k.delete(r),e}))}};return j.cache=function(e,n){b(e),E.set(e,n)},j},Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=wretch-middlewares.min.js.map