UNPKG

redux-sock

Version:

Redux middleware and reducer for controlling socket.io clients.

6 lines 2.84 kB
/*! *** redux-sock 2.0.2 *** Copyright © 2020, Jaid <jaid.jsx@gmail.com> (https://github.com/Jaid) *** @license MIT !*/ var e;e=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t){e.exports=require("immer")},function(e,t){e.exports=require("socket.io-client")},function(e,t){e.exports=require("socketio-wildcard")},function(e,t,n){n.r(t),n.d(t,"default",(function(){return f}));var r=n(0),o=n.n(r),i=n(1),c=n.n(i),s=n(2),u=n.n(s);function f(e){const t=`${(e={socketClientOptions:{},basePrefix:"@@socket/",sendPrefix:"send/",receivePrefix:"received/",events:!1,...e}).basePrefix}connected`,n=`${e.basePrefix}initiallyConnected`,r=`${e.basePrefix}disconnected`,i=e.basePrefix+e.sendPrefix,s=e.basePrefix+e.receivePrefix,f=c()(e.url,e.socketClientOptions),a=o=>(f.once("connect",()=>{if(o.dispatch({type:n}),e.events)if(Array.isArray(e.events))for(const t of e.events)f.on(t,(...e)=>{o.dispatch({type:s+t,payload:e[0]})});else for(const[t,n]of Object.entries(e.events))!0===n?f.on(t,(...e)=>{o.dispatch({type:s+t,payload:e[0]})}):"string"==typeof n?f.on(t,(...e)=>{o.dispatch({type:s+n,payload:e[0]})}):f.on(t,(...e)=>n(o.dispatch,e[0]));else u()(c.a.Manager)(f),f.on("*",e=>{const[t,...n]=e.data;o.dispatch({type:s+t,payload:n[0]})})}),f.on("connect",()=>{o.dispatch({type:t})}),f.on("disconnect",()=>{o.dispatch({type:r})}),e=>t=>{if(t.type.startsWith(i)){const e=t.type.substring(i.length);f.emit(e,t.payload)}return e(t)});return a.client=f,a.reducer=(t,n)=>{if(!t)return{status:"unset"};if("string"!=typeof(null==n?void 0:n.type))return t;if(!n.type.startsWith(e.basePrefix))return t;const r=n.type.substring(e.basePrefix.length);return"connected"===r?o()(t,e=>{e.status="connected"}):"disconnected"===r?o()(t,e=>{e.status="disconnected"}):t},a}}])},"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.reduxSock=e():this.reduxSock=e();