1.0.4 • Published 7 years ago

beelzebub v1.0.4

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

Build Status Coverage Status License Dependency Status devDependency Status

Description

A modern task runner pipeline framework. Allows your Tasks to be Modular, Extendable, Flexible, Manageable, and Fire Resistant!

Features

  1. Tasks are based on Promises, support:
  2. ES6 Class base class
    • Extending from other Tasks (Example)
  3. Sub Tasks
    • Static - simply by adding another task class to a tasks sub class. (Example)
    • Dynamic - create sub tasks based on configuration (Example)
  4. Run other tasks in an task
  5. Before and After (Simple Example, Adv Example)
    • each task
    • all tasks
  6. Decorators
  7. Auto Help Docs (ALI Example, CLI Example)
  8. Passing Options (Vars) to a task or globally (ALI Example, CLI Example)
  9. CLI (Examples) and full Javascript API (Examples)
  10. 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 or beelzebub.json file

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"

1.0.4

7 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.17.0

9 years ago

0.16.0

9 years ago

0.15.0

9 years ago

0.14.0

9 years ago

0.13.1

10 years ago

0.13.0

10 years ago

0.12.2

10 years ago

0.12.1

10 years ago

0.12.0

10 years ago

0.11.1

10 years ago

0.11.0

10 years ago

0.10.0

10 years ago

0.9.0

10 years ago

0.8.0

10 years ago

0.7.1

10 years ago

0.7.0

10 years ago

0.6.6

10 years ago

0.6.5

10 years ago

0.6.3

10 years ago

0.6.2

10 years ago

0.6.1

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago