UNPKG

feathers-primus

Version:

The Feathers Primus real-time API provider

88 lines (62 loc) 2.49 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (config, configurer) { return function () { var app = this; if (app.version && app.version >= '3.0.0') { throw new Error('feathers-primus is not compatible with Feathers v' + app.version + '. Use the latest version of @feathersjs/primus instead.'); } app.configure((0, _feathersSocketCommons2.default)('primus')); // Monkey patch app.setup(server) _uberproto2.default.mixin({ setup: function setup(server) { debug('Setting up Primus'); var primus = this.primus; if (!primus) { primus = this.primus = new _primus2.default(server, config); primus.plugin('emitter', _primusEmitter2.default); primus.use('feathers', function (req, res, next) { req.feathers = { provider: 'primus' }; next(); }, 0); } if (typeof configurer === 'function') { debug('Calling Primus configuration function'); configurer.call(this, primus); } this._socketInfo = { method: 'send', connection: function connection() { return primus; }, clients: function clients() { return primus; }, params: function params(spark) { return spark.request.feathers; } }; // In Feathers it is easy to hit the standard Node warning limit // of event listeners (e.g. by registering 10 services). // So we set it to a higher number. 64 should be enough for everyone. this._socketInfo.connection().setMaxListeners(64); return this._super.apply(this, arguments); } }, app); }; }; var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); var _uberproto = require('uberproto'); var _uberproto2 = _interopRequireDefault(_uberproto); var _feathersSocketCommons = require('feathers-socket-commons'); var _feathersSocketCommons2 = _interopRequireDefault(_feathersSocketCommons); var _primus = require('primus'); var _primus2 = _interopRequireDefault(_primus); var _primusEmitter = require('primus-emitter'); var _primusEmitter2 = _interopRequireDefault(_primusEmitter); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var debug = (0, _debug2.default)('feathers-primus'); module.exports = exports['default'];