1.0.4 • Published 5 years ago

beelzebub v1.0.4

Weekly downloads
4
License
MIT
Repository
github
Last release
5 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

5 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.17.0

7 years ago

0.16.0

7 years ago

0.15.0

7 years ago

0.14.0

7 years ago

0.13.1

7 years ago

0.13.0

7 years ago

0.12.2

7 years ago

0.12.1

7 years ago

0.12.0

7 years ago

0.11.1

7 years ago

0.11.0

7 years ago

0.10.0

8 years ago

0.9.0

8 years ago

0.8.0

8 years ago

0.7.1

8 years ago

0.7.0

8 years ago

0.6.6

8 years ago

0.6.5

8 years ago

0.6.3

8 years ago

0.6.2

8 years ago

0.6.1

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago