UNPKG

kea-socket.io

Version:
86 lines (65 loc) 3.06 kB
'use strict'; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _kea = require('kea'); var _config = require('./config'); var _observe = require('./observe'); var _actions = require('./actions'); var _utils = require('./utils'); function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var localStoragePlugin = function localStoragePlugin() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _ref$sockets = _ref.sockets, sockets = _ref$sockets === undefined ? [] : _ref$sockets, options = _objectWithoutProperties(_ref, ['sockets']); return { name: 'kea-socket.io', events: { afterPlugin: function afterPlugin() { var emitters = {}; /** add all named and default sockets + options to context */ sockets.forEach(function (socket) { (0, _actions.patchSocket)(socket); emitters[socket.nsp.substr(1) || 'default'] = socket; (0, _observe.addSystemObserve)(socket); socket.on('*', function () { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, data = _ref2.data; var type = data[0], payload = data[1]; (0, _observe.observe)({ type: type, payload: payload, socket: socket }); }); }); (0, _kea.setPluginContext)('kea-socket.io', { emitters: _extends({}, emitters), options: _extends({}, _config.defaultsOptions, options) }); }, beforeMount: function beforeMount(logic) { var _getPluginContext = (0, _kea.getPluginContext)('kea-socket.io'), emitters = _getPluginContext.emitters, _getPluginContext$opt = _getPluginContext.options, options = _getPluginContext$opt === undefined ? {} : _getPluginContext$opt; var additionalActions = options.emitterActions; logic.emitters = _extends({}, emitters); logic.getEmitters = _utils.getEmitters; logic.emitterActions = _extends({}, _actions.emitterActions, additionalActions); }, beforeCloseContext: function beforeCloseContext(context) { /** reset context ? */ (0, _kea.setPluginContext)('kea-socket.io', { emitters: {}, options: _extends({}, _config.defaultsOptions) }); } }, buildOrder: { socketSubscribe: { after: 'thunks' } }, buildSteps: { socketSubscribe: function socketSubscribe(logic, input) { if (input.socketPrefix) { logic.socketPrefix = input.socketPrefix; } } } }; }; exports.default = localStoragePlugin;