beelzebub
v1.0.4
Published
One Hell of a Task Master!
Downloads
432
Maintainers
Readme
Description
A modern task runner pipeline framework. Allows your Tasks to be Modular, Extendable, Flexible, Manageable, and Fire Resistant!
Features
- Tasks are based on Promises, support:
- Generator (Example)
- Using co wrapping
- Async/Await (Example)
- Streams (Example)
- Compatible with your existing
gulp
tasks
- Compatible with your existing
- Generator (Example)
- ES6 Class base class
- Extending from other Tasks (Example)
- Sub Tasks
- Run other tasks in an task
- Before and After (Simple Example, Adv Example)
- each task
- all tasks
- Decorators
- Auto Help Docs (ALI Example, CLI Example)
- Passing Options (Vars) to a task or globally (ALI Example, CLI Example)
- CLI (Examples) and full Javascript API (Examples)
- *Totally bad ss logo!
Install
API
$ npm install beelzebub
CLI
$ npm install beelzebub -g
DOCS
Task Class
API
Examples
Simple Example
const Beelzebub = require('beelzebub');
class MyTasks extends Beelzebub.Tasks {
task1() {
this.logger.log('MyTasks task1');
}
}
// Add Task to BZ, it will now be registered
Beelzebub.add( MyTasks );
// ------------------------------------
// Runs the task, returning a promise
Beelzebub.run('MyTasks.task1');
CLI
Examples
Reserved Global Flags
--help
or-h
- Prints Usage, List of Task Help Docs and Vars Definitions
--version
or-v
- Prints Beelzebub version
--file=<file path>
or-f=<file path>
- Uses this file instead of the
beelzebub.js
orbeelzebub.json
file
- Uses this file instead of the
Passing Vars
The CLI uses yargs and thus the vars parsing is handled by yargs-parser.
$ bz <global vars> TaskPath <vars to pass to this Task> AnotherTaskPath <vars will only pass to the preceding Task>
Simple Example
beelzebub.js
file
const Beelzebub = require('beelzebub');
class MyTasks extends Beelzebub.Tasks {
task() {
this.logger.log('MyTasks task');
}
}
module.exports = MyTasks;
$ bz MyTasks.task
Vars Example
beelzebub.js
file
const Beelzebub = require('beelzebub');
class MyTasks1 extends Beelzebub.Tasks {
default(aVars) {
const gVars = this.$getGlobalVars();
this.logger.log(`MyTasks1 default ${gVars.myGlobalVar} ${aVars.v1}`);
}
}
class MyTasks2 extends Beelzebub.Tasks {
task(aVars) {
const gVars = this.$getGlobalVars();
this.logger.log(`MyTasks1 task ${gVars.myGlobalVar} ${aVars.v1}`);
}
}
module.exports = [MyTasks1, MyTasks2];
$ bz --myGlobalVar=hello MyTasks1 --v1=1 MyTasks2.task --v1=2
Load File Example
appTasks.js
file
module.exports = [
require('bz-frontend-react'),
require('bz-frontend-babel'),
require('./mytask.js')
];
$ bz --file=./appTasks.js MyTasks.task1
Special Thanks
To everyone supporting the development and cost to the project. I would also like to thank the logo artist Irving Gerardo!!!
License
It should be an obvious choice or you totally missed the badge at the top.
However for completeness;
"I Beelzebub, declare myself to be under the MIT licence"