redux-toolkit-optimistic
Version:
Helper library for Redux Toolkit to perform optimistic updates.
1 lines • 4.27 kB
JavaScript
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ReduxToolkitOptimistic=e():t.ReduxToolkitOptimistic=e()}(window,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=1)}([function(t,e){function r(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?t.exports=r=function(t){return typeof t}:t.exports=r=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(e)}t.exports=r},function(t,e,r){t.exports=r(2)},function(t,e,r){"use strict";r.r(e),r.d(e,"performOptimisticUpdate",(function(){return c})),r.d(e,"performManyOptimisticUpdates",(function(){return a})),r.d(e,"revertOptimisticUpdate",(function(){return f})),r.d(e,"revertManyOptimisticUpdates",(function(){return s}));var n=r(0),o=r.n(n);function i(t,e){var r;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return u(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,c=!0,a=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return c=t.done,t},e:function(t){a=!0,i=t},f:function(){try{c||null==r.return||r.return()}finally{if(a)throw i}}}}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function c(t,e,r){var n=new Error("Incorrect `update` arg sent to `performOptimisticUpdate`. Expected: { id: <string>, changes: <object> }");if(!r||"object"!==o()(r))throw n;var i=r.id,u=r.changes;if("string"!=typeof i||"object"!==o()(u))throw n;t.entities[i].previousChanges=Object.keys(u).reduce((function(e,r){return e[r]=t.entities[i][r],e}),{}),e.updateOne(t,r)}function a(t,e,r){var n=new Error("Incorrect `update` arg sent to `performManyOptimisticUpdates`. Expected: [{ id: <string>, changes: <object> }, ...]");if(!r||!Array.isArray(r))throw n;var u,c=i(r);try{var a=function(){var e=u.value;if("object"!==o()(e)||"string"!=typeof e.id||"object"!==o()(e.changes))throw n;var r=e.id,i=e.changes;t.entities[r].previousChanges=Object.keys(i).reduce((function(e,n){return e[n]=t.entities[r][n],e}),{})};for(c.s();!(u=c.n()).done;)a()}catch(t){c.e(t)}finally{c.f()}e.updateMany(t,r)}function f(t,e,r){var n;if("string"!=typeof r)throw new Error("Incorrect `id` arg sent to `revertOptimisticUpdate`. Expected: <string>");var o=null==t||null===(n=t.entities[r])||void 0===n?void 0:n.previousChanges;o&&e.updateOne(t,{id:r,changes:o})}function s(t,e,r){if(!Array.isArray(r))throw new Error("Incorrect `ids` arg sent to `revertManyOptimisticUpdates`. Expected: [<string>]");var n=r.map((function(e){var r,n=null==t||null===(r=t.entities[e])||void 0===r?void 0:r.previousChanges;return n?{id:e,changes:n}:null})).filter(Boolean);n.length&&e.updateMany(t,n)}}])}));