New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ponos

Package Overview
Dependencies
Maintainers
3
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ponos - npm Package Compare versions

Comparing version 0.11.1 to 1.0.0

63

lib/server.js

@@ -6,2 +6,4 @@ 'use strict';

var assign = require('101/assign');
var clone = require('101/clone');
var debug = require('debug')('ponos:server');
var defaults = require('101/defaults');

@@ -16,3 +18,2 @@ var ErrorCat = require('error-cat');

var Promise = require('bluebird');
var clone = require('101/clone');
var Worker = require('./worker');

@@ -89,2 +90,3 @@

Server.prototype._assertHaveAllTasks = function () {
debug('_assertHaveAllTasks');
return Promise.resolve(this.hermes.getQueues()).bind(this)

@@ -105,4 +107,5 @@ .each(function (queueName) {

Server.prototype._subscribe = function (queueName) {
debug('_subscribe(' + queueName + ')');
this.log.trace('ponos.Server: subscribing to ' + queueName);
return this.hermes.subscribeAsync(queueName, function (job, done) {
return this.hermes.subscribe(queueName, function (job, done) {
this._runWorker(queueName, job, done);

@@ -117,2 +120,3 @@ }.bind(this));

Server.prototype._subscribeAll = function () {
debug('_subscribeAll');
return Promise.resolve(this.hermes.getQueues()).bind(this)

@@ -129,2 +133,3 @@ .map(this._subscribe);

Server.prototype._runWorker = function (queueName, job, done) {
debug('_runWorker(' + [ queueName, job ].join(', ') + ')');
var opts = clone(this._workerOptions[queueName]);

@@ -147,2 +152,3 @@ defaults(opts, {

Server.prototype.start = function () {
debug('start');
this.log.trace('ponos.Server: starting');

@@ -166,2 +172,3 @@ return this.hermes.connectAsync().bind(this)

Server.prototype.stop = function () {
debug('stop');
this.log.trace('ponos.Server: stopping');

@@ -184,19 +191,20 @@ return this.hermes.closeAsync().bind(this)

* and additional options for the worker.
* @returns {promise} Resolved when all tasks are assigned to queues.
* @returns {ponos.Server} The server.
*/
Server.prototype.setAllTasks = function (map) {
return Promise.resolve(Object.keys(map)).bind(this)
.each(function (key) {
var value = map[key];
if (isObject(value)) {
if (!isFunction(value.task)) {
throw new Error(
'ponos.Server.setAllTasks: No task function defined for ' + key
);
}
return this.setTask(key, value.task, value);
} else {
return this.setTask(key, map[key]);
debug('setAllTasks');
Object.keys(map).forEach(function (key) {
var value = map[key];
if (isObject(value)) {
if (!isFunction(value.task)) {
throw new Error(
'ponos.Server.setAllTasks: No task function defined for ' + key
);
}
});
this.setTask(key, value.task, value);
} else {
this.setTask(key, map[key]);
}
}.bind(this));
return this;
};

@@ -209,17 +217,16 @@

* @param {object} opts Options for the worker that performs the task.
* @returns {promise} Resolved when task assigned to queue.
* @returns {ponos.Server} The server.
*/
Server.prototype.setTask = function (queueName, task, opts) {
debug('setTask(' + [ queueName, task ].join(', ') + ')');
this.log.trace('ponos.Server: setting task for ' + queueName);
return Promise.resolve().bind(this)
.then(function () {
if (!isFunction(task)) {
throw new Error(
'ponos.Server.setTask: Provided task handler is not a function'
);
}
this._tasks[queueName] = task;
this._workerOptions[queueName] = isObject(opts) ?
pick(opts, 'msTimeout') : {};
});
if (!isFunction(task)) {
throw new Error(
'ponos.Server.setTask: Provided task handler is not a function'
);
}
this._tasks[queueName] = task;
this._workerOptions[queueName] = isObject(opts) ?
pick(opts, 'msTimeout') : {};
return this;
};
{
"name": "ponos",
"version": "0.11.1",
"version": "1.0.0",
"description": "An opinionated queue based worker server for node.",

@@ -37,2 +37,3 @@ "main": "index.js",

"bunyan": "^1.5.1",
"debug": "^2.2.0",
"error-cat": "^1.3.4",

@@ -39,0 +40,0 @@ "loadenv": "^1.1.0",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc