UNPKG

svelte-streamable

Version:

Super tiny, simple to use SvelteJS store for real-time updates from server via SSE.

3 lines (2 loc) 2.93 kB
var streamable=function(e){"use strict";function r(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},u=Object.keys(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function t(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var n,o,u=[],i=!0,a=!1;try{for(t=t.call(e);!(i=(n=t.next()).done)&&(u.push(n.value),!r||u.length!==r);i=!0);}catch(e){a=!0,o=e}finally{try{i||null==t.return||t.return()}finally{if(a)throw o}}return u}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return n(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 n(e,r)}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(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 o(){}Promise.resolve();const u=[];function i(e,r=o){let t;const n=new Set;function i(r){if(i=r,((o=e)!=o?i==i:o!==i||o&&"object"==typeof o||"function"==typeof o)&&(e=r,t)){const r=!u.length;for(const r of n)r[1](),u.push(r,e);if(r){for(let e=0;e<u.length;e+=2)u[e][0](u[e+1]);u.length=0}}var o,i}return{set:i,update:function(r){i(r(e))},subscribe:function(u,a=o){const c=[u,a];return n.add(c),1===n.size&&(t=r(i)||o),u(e),()=>{n.delete(c),0===n.size&&(t(),t=null)}}}}var a=["url","event","format"],c={};function s(){}return e.streamable=function(e,n,o){var u=e.url,l=e.event,f=void 0===l?"message":l,b=e.format,v=void 0===b?"json":b,d=r(e,a),m=!n||n.length<2,y=o?Promise.resolve(o):new Promise(s);return{subscribe:i(y,(function(e){var r=s;function o(r){e(void 0!==r?Promise.resolve(r):y)}function i(e){var t;r(!1),e&&e.data&&(t="json"===v?JSON.parse(e.data):"base64"===v?atob(e.data):"urlencoded"===v?Object.fromEntries(new URLSearchParams(e.data)):e.data);var u=n?n(t,o):t;m?o(u):r="function"==typeof u?u:s}function a(r){e(Promise.reject(r))}var l=Object.entries(d).sort().reduce((function(e,r){var n=t(r,2)[1];return"".concat(e,"/").concat(n)}),u),b=c[l];return b||((b=new EventSource(u,d)).subscribers=0,c[l]=b),b.addEventListener("error",a),b.addEventListener(f,i),n&&setTimeout(i),b.subscribers++,function(){b.removeEventListener("error",a),b.removeEventListener(f,i),--b.subscribers||(b.close(),delete c[l]),r(!0)}})).subscribe}},Object.defineProperty(e,"__esModule",{value:!0}),e}({}); //# sourceMappingURL=streamable.min.js.map