kea-socket.io
Version:
Socket.io binding for Kea store
60 lines (48 loc) • 1.78 kB
JavaScript
;
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;
};
};