UNPKG

kea-socket.io

Version:
55 lines (45 loc) 1.48 kB
import { getPluginContext } from 'kea'; export var isFunction = function isFunction(obj) { return typeof obj === 'function'; }; export var isSocketIo = function isSocketIo(obj) { return !!obj && (isFunction(obj.on) && isFunction(obj.emit) || Array.isArray(obj) && obj.every(function (item) { return isSocketIo(item); })); }; export var trimNamespace = function trimNamespace(namespaced) { return namespaced.split('/').pop(); }; export var getEmitters = function getEmitters(name) { var _getPluginContext = getPluginContext('kea-socket.io'), _getPluginContext$emi = _getPluginContext.emitters, emitters = _getPluginContext$emi === undefined ? {} : _getPluginContext$emi; if (name) { return emitters[name]; } return emitters; }; export var getCurrentName = function getCurrentName(name) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; if (name.indexOf(prefix) === 0) { return name.replace(prefix, ''); } return name; }; export var wildcardMiddleware = function wildcardMiddleware(Emitter) { var emit = Emitter.prototype.emit; function onevent(packet) { var args = packet.data || []; if (packet.id != null) { args.push(this.ack(packet.id)); } emit.call(this, '*', packet); return emit.apply(this, args); } return function (socket, next) { if (socket.onevent !== onevent) { socket.onevent = onevent; } return next ? next() : null; }; };