BootMe
A fully configurable and extendable Task Pipeline
Installation
npx -p bootme
Features
- Handle nested queues, the order of execution is guaranteed thanks to workq package.
- Define Before, After, Failure Hooks in the Task or after via Registry access.
- The recover routine of the task is triggered when nested jobs fail.
Usage
const task = new Bootme.Task().setName('foo').setConfig({})
task.addHook('onBefore', async function() {})
task.addHook('onAfter', async function() {})
task.addHook('onFailure', async function(err) {})
task.action(async function(parent) {
parent.addJob(async function(parent) {
parent.addJob(async function() {})
})
})
const registry = new Bootme.Registry()
registry.addTask(task)
registry.addHook('foo', 'onBefore', () => console.log('Before foo'))
registry.addHook('foo', 'onAfter', () => console.log('After foo'))
const pipeline = new Bootme.Pipeline(registry)
pipeline.execute()
Task Template
const Task = require('bootme').Task
class HttpRequestTask extends Task {
constructor() {
super()
}
async action(parent) {
console.log('Do something!')
parent.addJob(async (parent) => {})
}
}