Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@inlustra/task-runner

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@inlustra/task-runner

A Task

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Inlustra's Task Runner

A sub-task manager/pipeline to handle child processes.

Install

  npm i @inlustra/task-manager

TL:DR

Takes jobs (Child Processes) and handles piping up to a single stream across processes. A Task is made up of multiple jobs with a previous job condition (eg. the previous job must be a success)

  • Jobs are run consecutively
  • All stage updates (Complete, Error, Cancelled, Skipped) are bubbled up through events.
  • Handles errors without blowing up (If not handled explicitly!)

The simplest way to get tasks running one after the other

Create a task, made up of multiple jobs, this is the equivalent of a pipeline

const task = {
  name: 'A Simple Task',
  description: 'A task to list some files',
  jobs: [
    new ShellJob('ls ./'), // List the files
    new ShellJob('sleep 5'), // Sleep for 5 seconds
    new ShellJob('exit 1'), // Then error
    new ShellJob('echo "This won\'t appear!"') // The task runner won't run this job
  ]
}

const taskHandler = new TaskHandler(task)
taskHandler.on(TaskHandler.Events.STAGE_UPDATE, (stages) => {
  console.log('The next stage in the task has run!')
  console.log(stages)
})

Using the task runner to add tasks

const task = {
  name: 'A Simple Task',
  description: 'A task to list some files',
  jobs: [
    new ShellJob('ls ./'), // List the files
    new ShellJob('sleep 5'), // Sleep for 5 seconds
    new ShellJob('exit 1'), // Then error
    new ShellJob('echo "This won\'t appear!"') // The task runner won't run this job
  ]
}

Register the task, add your pipes and start it!

const taskRunner = new TaskRunner()
taskRunner.addGlobalPipe(process.stdout) // Will print all outputs from any tasks to the console
const taskKey = taskRunner.register(task)
taskRunner.addTaskPipe(taskKey, fs.createWriteStream('./'))

TODO

  • Document the options available (Jobs can run on error)
  • Document the Event types in TaskHandler and TaskRunner
  • Bubble up errors to the developer

Keywords

FAQs

Package last updated on 02 Feb 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

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