react-suspense-fetch
Version:
A low-level library for React Suspense for Data Fetching
3 lines (2 loc) • 2.83 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e||self).reactSuspenseFetch={})}(this,function(e){function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function n(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}e.createFetchStore=function(e,t,r){var o=function(e){if("WeakMap"===(null==e?void 0:e.type))return new WeakMap;var t="Map"===(null==e?void 0:e.type)&&e.areEqual;return t?function(e){var t=new Map;return{set:function(e,n){t.set(e,n)},has:function(r){for(var o,u=n(t);!(o=u()).done;)if(e(o.value[0],r))return!0;return!1},get:function(r){for(var o,u=n(t);!(o=u()).done;){var i=o.value,a=i[1];if(e(i[0],r))return a}},delete:function(r){for(var o,u=n(t);!(o=u()).done;){var i=o.value[0];e(i,r)&&t.delete(i)}}}}(t):new Map}(t),u=function(e){if("WeakMap"===(null==t?void 0:t.type)&&("object"!=typeof(n=e)||null===n))throw new Error("WeakMap requires object input");var n},i=function(e,t){u(e),o.set(e,{get:function(){return t},abort:function(){}})};if(r)for(var a,f=n(r);!(a=f()).done;){var l=a.value;i(l[0],l[1])}var c=function(t){u(t),o.has(t)||o.set(t,function(t){var n=null,r=null,o=null,u=new AbortController;return n=function(){try{var i=function(e,t){try{var n=e()}catch(e){return t(!0,e)}return n&&n.then?n.then(t.bind(null,!1),t.bind(null,!0)):t(!1,n)}(function(){return function(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}(function(){return Promise.resolve(e(t,{signal:u.signal})).then(function(e){r=e})},function(e){o=e})},function(e,t){if(n=null,e)throw t;return t});return Promise.resolve(i&&i.then?i.then(function(){}):void 0)}catch(e){return Promise.reject(e)}}(),{get:function(){if(n)throw n;if(null!==o)throw o;return r},abort:function(){u.abort()}}}(t))};return{prefetch:c,get:function(e,t){u(e),null!=t&&t.forcePrefetch&&c(e);var n=o.get(e);if(!n)throw new Error("prefetch() must be called before get()");return n.get()},preset:i,evict:function(e){u(e),o.delete(e)},abort:function(e){var t;u(e),null==(t=o.get(e))||t.abort()}}}});
//# sourceMappingURL=index.umd.js.map