UNPKG

@awamwang/vue-socket.io-extended

Version:

Socket.io bindings for Vue.js and Vuex (inspired by Vue-Socket.io)

2 lines (1 loc) 6.97 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VueSocketIOExt={},e.Vue)}(this,(function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function c(e){return function(e){if(Array.isArray(e))return e}(e)||u(e)||s(e)||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 a(e){return function(e){if(Array.isArray(e))return f(e)}(e)||u(e)||s(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 u(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function s(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(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}var l,p,b=function(e){return"function"==typeof e},y=function(e){return e&&e.length<=1?e[0]:e},v=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return t.reduce((function(e,t){return t(e)}),e)}},d=function(e){return function(t){return e+t}},m=function(e,t,n){var r=e[t];e[t]=function(){for(var t=arguments.length,o=new Array(t),i=0;i<t;i++)o[i]=arguments[i];r.call.apply(r,[e].concat(o)),n.apply(void 0,o)}},g={emit:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=p.get(e)||[];o.forEach((function(e){var t;(t=e.callback).call.apply(t,[e.vm].concat(n))}))},addListener:function(e,t,n){b(n)&&(p.has(t)||p.set(t,[]),p.get(t).push({callback:n,vm:e}))},removeListenersByLabel:function(e,t){var n=(p.get(t)||[]).filter((function(t){return t.vm!==e}));n.length>0?p.set(t,n):p.delete(t)},_listeners:p=new Map(l)},h=function(e){return Object.keys(e._mutations)},O=function(e){return Object.keys(e._actions)},w=function(e){return e.split("/").pop()},j=function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);var n;return e=Array.isArray(e)?e.map((function(e){return e.trim()})).filter((function(e){return e.length})).join("-"):e.trim(),0===e.length?"":1===e.length?t.pascalCase?e.toUpperCase():e.toLowerCase():(e!==e.toLowerCase()&&(e=function(e){for(var t=!1,n=!1,r=!1,o=0;o<e.length;o++){var i=e[o];t&&/[a-zA-Z]/.test(i)&&i.toUpperCase()===i?(e=e.slice(0,o)+"-"+e.slice(o),t=!1,r=n,n=!0,o++):n&&r&&/[a-zA-Z]/.test(i)&&i.toLowerCase()===i?(e=e.slice(0,o-1)+"-"+e.slice(o-1),r=n,n=!1,t=!0):(t=i.toLowerCase()===i&&i.toUpperCase()!==i,r=n,n=i.toUpperCase()===i&&i.toLowerCase()!==i)}return e}(e)),e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(function(e,t){return t.toUpperCase()})).replace(/\d+(\w|$)/g,(function(e){return e.toUpperCase()})),n=e,t.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n)},k=j,A=j;k.default=A;var P=Object.freeze({actionPrefix:"socket_",mutationPrefix:"SOCKET_",eventToMutationTransformer:function(e){return e.toUpperCase()},eventToActionTransformer:k}),C=["connect","error","disconnect","reconnect","reconnect_attempt","reconnecting","reconnect_error","reconnect_failed","connect_error","connect_timeout","connecting","ping","pong"],_=["store"];var $=Object.freeze({__proto__:null,defaults:P,install:function(e,n,o){if(!((u=n)&&b(u.on)&&b(u.emit)))throw new Error("[vue-socket.io-ext] you have to pass `socket.io-client` instance to the plugin");var u,s={};!function(e,n,r){var o=t.ref(!1);n.on("connect",(function(){o.value=!0})),n.on("disconnect",(function(){o.value=!1})),Object.defineProperties(r,{connected:{get:function(){return o.value},enumerable:!1},disconnected:{get:function(){return!o.value},enumerable:!1}})}(0,n,s),function(e,t){Object.defineProperties(t,{client:{value:e,writable:!1,enumerable:!1}})}(n,s),e.config.globalProperties.$socket=s,e.config.optionMergeStrategies.sockets=function(e,t){return r(r({},e),t)},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.store,o=i(t,_),u=r(r({},P),o),s=v(u.eventToActionTransformer,d(u.actionPrefix)),f=v(u.eventToMutationTransformer,d(u.mutationPrefix));function l(e,t){if(n){var r=f(e),o=s(e),i=h(n),c=O(n),a=y(t);i.filter((function(e){return w(e)===r})).forEach((function(e){return n.commit(e,a)})),c.filter((function(e){return w(e)===o})).forEach((function(e){return n.dispatch(e,a)}))}}function p(){m(e,"onevent",(function(e){var t=c(e.data),n=t[0],r=t.slice(1),i=n;o.eventMapping&&(i=o.eventMapping(n,r)),g.emit.apply(g,[i].concat(a(r))),l(i,r)})),C.forEach((function(t){e.on(t,(function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];g.emit.apply(g,[t].concat(n)),l(t,n)}))}))}p()}(n,o),e.mixin(function(e){return{created:function(){this.$options.sockets=this.$options.sockets||{};var t=this.$options.sockets,n=e.addListener.bind(null,this),r=e.removeListenersByLabel.bind(null,this);Object.keys(t).forEach((function(e){n(e,t[e])})),this.$socket=this.$socket||{},Object.defineProperties(this.$socket,{$subscribe:{value:n,writable:!1,enumerable:!1,configurable:!0},$unsubscribe:{value:r,writable:!1,enumerable:!1,configurable:!0}})},beforeUnmount:function(){var t=this,n=this.$options.sockets,r=void 0===n?{}:n;Object.keys(r).forEach((function(n){e.removeListenersByLabel(t,n)}))},unmounted:function(){delete this.$socket.$subscribe,delete this.$socket.$unsubscribe}}}(g))}});e.default=$,Object.defineProperty(e,"__esModule",{value:!0})}));