UNPKG

kea-socket.io

Version:
60 lines (48 loc) 1.78 kB
'use strict'; exports.__esModule = true; exports.wildcardMiddleware = exports.getCurrentName = exports.getEmitters = exports.trimNamespace = exports.isSocketIo = exports.isFunction = undefined; var _kea = require('kea'); var isFunction = exports.isFunction = function isFunction(obj) { return typeof obj === 'function'; }; var isSocketIo = exports.isSocketIo = function isSocketIo(obj) { return !!obj && (isFunction(obj.on) && isFunction(obj.emit) || Array.isArray(obj) && obj.every(function (item) { return isSocketIo(item); })); }; var trimNamespace = exports.trimNamespace = function trimNamespace(namespaced) { return namespaced.split('/').pop(); }; var getEmitters = exports.getEmitters = function getEmitters(name) { var _getPluginContext = (0, _kea.getPluginContext)('kea-socket.io'), _getPluginContext$emi = _getPluginContext.emitters, emitters = _getPluginContext$emi === undefined ? {} : _getPluginContext$emi; if (name) { return emitters[name]; } return emitters; }; var getCurrentName = exports.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; }; var wildcardMiddleware = exports.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; }; };