svelte-asyncable
Version:
Super tiny, declarative, optimistic, async store for SvelteJS.
3 lines (2 loc) • 5.32 kB
JavaScript
var asyncable=function(e){"use strict";function r(e){return r="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},r(e)}function t(e,r,t,n,o,u,c){try{var i=e[u](c),s=i.value}catch(e){return void t(e)}i.done?r(s):Promise.resolve(s).then(n,o)}function n(e){return function(){var r=this,n=arguments;return new Promise((function(o,u){var c=e.apply(r,n);function i(e){t(c,o,u,i,s,"next",e)}function s(e){t(c,o,u,i,s,"throw",e)}i(void 0)}))}}function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function u(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,r){if(!e)return;if("string"==typeof e)return i(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return i(e,r)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function s(){}function a(e){return e()}function f(e,...r){if(null==e)return s;const t=e.subscribe(...r);return t.unsubscribe?()=>t.unsubscribe():t}function l(e){let r;return f(e,(e=>r=e))(),r}const p=[];function b(e,r=s){let t;const n=new Set;function o(r){if(u=r,((o=e)!=o?u==u:o!==u||o&&"object"==typeof o||"function"==typeof o)&&(e=r,t)){const r=!p.length;for(const r of n)r[1](),p.push(r,e);if(r){for(let e=0;e<p.length;e+=2)p[e][0](p[e+1]);p.length=0}}var o,u}return{set:o,update:function(r){o(r(e))},subscribe:function(u,c=s){const i=[u,c];return n.add(i),1===n.size&&(t=r(o)||s),u(e),()=>{n.delete(i),0===n.size&&(t(),t=null)}}}}function y(e,r,t){const n=!Array.isArray(e),o=n?[e]:e,u=r.length<2;return c=e=>{let t=!1;const c=[];let i=0,l=s;const p=()=>{if(i)return;l();const t=r(n?c[0]:c,e);u?e(t):l="function"==typeof t?t:s},b=o.map(((e,r)=>f(e,(e=>{c[r]=e,i&=~(1<<r),t&&p()}),(()=>{i|=1<<r}))));return t=!0,p(),function(){b.forEach(a),l()}},{subscribe:b(t,c).subscribe};var c}function m(e){return"object"!==r(e)||null===e?e:Array.isArray(e)?c(e):function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?u(Object(t),!0).forEach((function(r){o(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}({},e)}return e.asyncable=function(e){var r,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],u=new Promise((function(e){return r=e})),i=y(o,(function(e){return e})),s=b(u,(function(t){return i.subscribe(n(regeneratorRuntime.mark((function n(){var o,u,i=arguments;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(o=i.length>0&&void 0!==i[0]?i[0]:[],void 0!==(u=e.apply(void 0,c(o)))){n.next=4;break}return n.abrupt("return");case 4:u=Promise.resolve(u),t(u),r(u);case 7:case"end":return n.stop()}}),n)}))))}));function a(e,r){return f.apply(this,arguments)}function f(){return(f=n(regeneratorRuntime.mark((function e(r,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r!==n){e.next=2;break}return e.abrupt("return");case 2:return s.set(Promise.resolve(r)),e.prev=3,e.next=6,t(r,n);case 6:e.next=12;break;case 8:throw e.prev=8,e.t0=e.catch(3),s.set(Promise.resolve(n)),e.t0;case 12:case"end":return e.stop()}}),e,null,[[3,8]])})))).apply(this,arguments)}return{subscribe:s.subscribe,update:function(e){return n(regeneratorRuntime.mark((function r(){var n,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(t){r.next=2;break}return r.abrupt("return");case 2:return r.prev=2,r.next=5,l(s);case 5:return n=r.sent,r.next=8,e(m(n));case 8:o=r.sent;case 9:return r.prev=9,r.next=12,a(o,n);case 12:return r.finish(9);case 13:case"end":return r.stop()}}),r,null,[[2,,9,13]])})))()},set:function(e){return n(regeneratorRuntime.mark((function r(){var n;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(t){r.next=2;break}return r.abrupt("return");case 2:return r.prev=2,r.next=5,l(s);case 5:return n=r.sent,r.next=8,e;case 8:e=r.sent;case 9:return r.prev=9,r.next=12,a(e,n);case 12:return r.finish(9);case 13:case"end":return r.stop()}}),r,null,[[2,,9,13]])})))()},get:function(){return l(s)}}},e.syncable=function(e,r){return y(e,(function(r,t){return(Array.isArray(e)?Promise.allSettled:Promise.resolve).call(Promise,r).then(t)}),r)},Object.defineProperty(e,"__esModule",{value:!0}),e}({});
//# sourceMappingURL=asyncable.min.js.map