@actonate/mirkwood
Version:
GraphQL based Rapid Server-side Development framework
77 lines (60 loc) • 2.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _adapters = require('./adapters');
var _adapters2 = _interopRequireDefault(_adapters);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var DEFAULT_CONNECTION = 'development';
var DEFAULT_ADAPTER = 'bull';
var Queue = function () {
function Queue() {
_classCallCheck(this, Queue);
}
_createClass(Queue, null, [{
key: 'init',
value: function init(_ref) {
var config = _ref.config;
this.config = config;
this.connections = {};
this._initializeQueues();
}
}]);
return Queue;
}();
Queue._initializeQueues = function () {
Queue._initQueues(false); //=>no need to return
};
Queue._initQueues = function (type, name) {
var connectionName = process.env['NODE_ENV'] || 'development';
var queueConnectionParams = Queue.config[connectionName];
try {
queueConnectionParams.queues.forEach(function (queue) {
var queueAdapter = _adapters2.default[queue.adapter || DEFAULT_ADAPTER];
queue = _extends({}, queue, {
prefix: queueConnectionParams.prefix || '',
persistence: queueConnectionParams.persistence
});
var newConnection = new queueAdapter(queue);
if (type === true && name === queue.name) {
throw { connection: newConnection };
}
});
} catch (err) {
if (err && err.connection) {
return err.connection;
}
}
};
Queue.push = function (datasource, args) {
var queueConnection = Queue._initQueues(true, args.queue);
return queueConnection.push(args);
};
Queue.clean = function (datasource, args) {
var queueConnection = Queue._initQueues(true, args.queue);
return queueConnection.clean(args);
};
exports.default = Queue;