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

thekdar

Package Overview
Dependencies
Maintainers
2
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

thekdar - npm Package Compare versions

Comparing version 1.0.4 to 1.0.5

12

core/Task.js

@@ -0,5 +1,7 @@

const uuid = require('uuid');
class Task {
constructor(name) {
this._name = name;
this.id = null;
this.id = uuid();
this.type = null;

@@ -32,6 +34,6 @@ this._workerId = null;

}
Task.TYPE_SPAWN = "spawn";
Task.TYPE_FORK = "fork";
Task.TYPE_EXEC_FILE = "exec_file";
Task.TYPE_EXEC = "exec";
Task.TYPE_SPAWN = 'spawn';
Task.TYPE_FORK = 'fork';
Task.TYPE_EXEC_FILE = 'exec_file';
Task.TYPE_EXEC = 'exec';
module.exports = Task;
const uuid = require('uuid');
const EventEmitter = require('events');
const debug = require('debug')('Thekdar:main');
const util = require('util');
const BetterQueue = require('better-queue');
const events = require('./events');
const util = require('util');
const Task = require('./Task');
const Worker = require('./Worker');
const debug = require('debug')('Thekdar:main');
const differenceInMinutes = require('date-fns/difference_in_minutes');
class Thekdar extends EventEmitter {
constructor() {
constructor(options = {}) {
super();

@@ -22,4 +24,31 @@ // All workers

this._pluggins = [];
this._queue = new BetterQueue(this.handleQueue.bind(this), {
concurrent: 1,
id: 'id',
filo: true,
maxRetries: 1,
retryDelay: 5000,
maxTimeout: 15000,
...(options.queue || {}),
});
}
handleQueue(task, callback) {
try {
const worker = this._getFreeWorker(task);
if (!worker) {
return callback('No worker found.');
}
const taskId = task.id;
this._tasks.set(taskId, task);
task.setWorkerId(worker.getId());
worker.addTask(this._tasks.get(taskId));
this._workerTaskLookup.get(worker.getId()).push(task.getId());
this.emit('add', { worker });
this.emit('info', { type: 'task:new', task, worker });
return callback(null, worker);
} catch (error) {
return callback(error);
}
}
stop() {

@@ -44,3 +73,3 @@ this._pluggins.forEach(plugin => {

}
addTask(task, workerAddressIndex = -1) {
addTask(task, callback = () => null) {
if (!task) {

@@ -52,22 +81,6 @@ throw new Error('Please provide task object instance of Task Class');

}
const taskId = uuid();
task.setId(taskId);
try {
const worker = this._getFreeWorker(task, workerAddressIndex);
if (!worker) {
debug('No Worker found.');
return null;
}
this._tasks.set(taskId, task);
task.setWorkerId(worker.getId());
worker.addTask(this._tasks.get(taskId));
this._workerTaskLookup.get(worker.getId()).push(task.getId());
this.emit('add', { worker });
this.emit('info', { type: 'task:new', task, worker });
debug(`New task added, previous task count ${this._tasks.size}`);
return worker;
} catch (error) {
debug(error);
throw error;
}
this._queue.push(task, (err, result) => {
callback(err, result);
});
}

@@ -97,2 +110,3 @@

}
_getFreeWorker(task, workerTaskLength = 0) {

@@ -99,0 +113,0 @@ if (workerTaskLength === this._maxTaskPerWorker) {

@@ -14,3 +14,3 @@ const Thekdar = require('../index');

task.setType(Task.TYPE_FORK);
thekdar.addTask(task);
thekdar.addTask(task, () => null);
thekdar.setMaxTaskPerWorker(10);

@@ -17,0 +17,0 @@ for (let [workerId, works] of thekdar._workerTaskLookup) {

{
"name": "thekdar",
"version": "1.0.4",
"version": "1.0.5",
"description": "",

@@ -13,5 +13,7 @@ "main": "index.js",

"dependencies": {
"better-queue": "^3.8.7",
"date-fns": "^1.29.0",
"debug": "^3.1.0",
"respawn": "^2.5.0",
"uuid": "^3.1.0"
"uuid": "^3.2.1"
},

@@ -18,0 +20,0 @@ "devDependencies": {

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