UNPKG

beelzebub

Version:
4,070 lines (1,174 loc) 53.1 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>BzTasks - Documentation</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc.css"> </head> <body> <input type="checkbox" id="nav-trigger" class="nav-trigger" /> <label for="nav-trigger" class="navicon-button x"> <div class="navicon"></div> </label> <label for="nav-trigger" class="overlay"></label> <nav> <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BzTasks.html">BzTasks</a><ul class='methods'><li data-type='method'><a href="BzTasks.html#$addSubTasks">$addSubTasks</a></li><li data-type='method'><a href="BzTasks.html#$defineTaskVars">$defineTaskVars</a></li><li data-type='method'><a href="BzTasks.html#$getGlobalVars">$getGlobalVars</a></li><li data-type='method'><a href="BzTasks.html#$getName">$getName</a></li><li data-type='method'><a href="BzTasks.html#$getRunning">$getRunning</a></li><li data-type='method'><a href="BzTasks.html#$getStatsSummary">$getStatsSummary</a></li><li data-type='method'><a href="BzTasks.html#$getSubTask">$getSubTask</a></li><li data-type='method'><a href="BzTasks.html#$getSubTasks">$getSubTasks</a></li><li data-type='method'><a href="BzTasks.html#$getTask">$getTask</a></li><li data-type='method'><a href="BzTasks.html#$getTaskFlatList">$getTaskFlatList</a></li><li data-type='method'><a href="BzTasks.html#$getTaskTree">$getTaskTree</a></li><li data-type='method'><a href="BzTasks.html#$getVarDefsForTaskName">$getVarDefsForTaskName</a></li><li data-type='method'><a href="BzTasks.html#$hasRunBefore">$hasRunBefore</a></li><li data-type='method'><a href="BzTasks.html#$hasSubTask">$hasSubTask</a></li><li data-type='method'><a href="BzTasks.html#$hasTask">$hasTask</a></li><li data-type='method'><a href="BzTasks.html#$isRoot">$isRoot</a></li><li data-type='method'><a href="BzTasks.html#$parallel">$parallel</a></li><li data-type='method'><a href="BzTasks.html#$printHelp">$printHelp</a></li><li data-type='method'><a href="BzTasks.html#$register">$register</a></li><li data-type='method'><a href="BzTasks.html#$run">$run</a></li><li data-type='method'><a href="BzTasks.html#$sequence">$sequence</a></li><li data-type='method'><a href="BzTasks.html#$setDefault">$setDefault</a></li><li data-type='method'><a href="BzTasks.html#$setGlobalVars">$setGlobalVars</a></li><li data-type='method'><a href="BzTasks.html#$setName">$setName</a></li><li data-type='method'><a href="BzTasks.html#$setSubTask">$setSubTask</a></li><li data-type='method'><a href="BzTasks.html#$setSubTasks">$setSubTasks</a></li><li data-type='method'><a href="BzTasks.html#$setTaskHelpDocs">$setTaskHelpDocs</a></li><li data-type='method'><a href="BzTasks.html#$useAsRoot">$useAsRoot</a></li></ul></li></ul><h3>Interfaces</h3><ul><li><a href="BzTasks_$afterAll.html">$afterAll</a></li><li><a href="BzTasks_$afterEach.html">$afterEach</a></li><li><a href="BzTasks_$beforeAll.html">$beforeAll</a></li><li><a href="BzTasks_$beforeEach.html">$beforeEach</a></li><li><a href="BzTasks_$init.html">$init</a></li></ul> </nav> <div id="main"> <h1 class="page-title">BzTasks</h1> <section> <header> <h2> BzTasks </h2> <div class="class-description"><p>Beelzebub Task Class, should be extended</p></div> </header> <article> <div class="container-overview"> <h2>Constructor</h2> <h4 class="name" id="BzTasks"><span class="type-signature"></span>new BzTasks<span class="signature">()</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line18">line 18</a> </li></ul></dd> </dl> </div> <h3 class="subsection-title">Methods</h3> <h4 class="name" id="$addSubTasks"><span class="type-signature"></span>$addSubTasks<span class="signature">(Task, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line504">line 504</a> </li></ul></dd> </dl> <div class="description"> <p>Add Sub Tasks</p> </div> <h5>Example</h5> <pre class="prettyprint"><code> let Beelzebub = require('../../'); let bz = Beelzebub(options || { verbose: true }); class MyBaseTasks extends Beelzebub.Tasks { constructor (config) { super(config); this.$setName(config.name || 'MyBaseTasks'); this.value = config.value; this._delayTime = 300; } $init () { return this._delay('MyBaseTasks init'); } _delay (message) { return new Promise((resolve, reject) => { setTimeout(() => { this.logger.log(message); resolve(); }, this._delayTime); }); } task1 () { return this._delay('MyBaseTasks task1 - ' + this.value); } } class MyTasks extends Beelzebub.Tasks { constructor (config) { super(config); this.$setName('MyTasks'); } $init () { this.logger.log('MyTasks init'); // simlate tasks dynamiclly added after some async event return new Promise((resolve, reject) => { setTimeout(() => { this.$addSubTasks(MyBaseTasks, { name: 'MyBaseTasks1', value: 123 }); this.$addSubTasks(MyBaseTasks, { name: 'MyBaseTasks2', value: 456 }); // done resolve(1234); }, 200); }); } task1 () { this.logger.log('MyTasks task1'); return this.$sequence('MyTasks.MyBaseTasks1.task1', 'MyTasks.MyBaseTasks2.task1'); } } bz.add(MyTasks); let p = bz.run('MyTasks.task1'); /* Output: MyTasks init MyBaseTasks init MyBaseTasks init MyTasks task1 MyBaseTasks task1 - 123 MyBaseTasks task1 - 456 */ </code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th>Default</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>Task</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last"><p>Task Class</p></td> </tr> <tr> <td class="name"><code>config</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="default"> <code>{}</code> </td> <td class="description last"><p>Config for Task</p></td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> <p>Promise</p> </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$defineTaskVars"><span class="type-signature"></span>$defineTaskVars<span class="signature">(taskName, taskDef)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line271">line 271</a> </li></ul></dd> </dl> <div class="description"> <p>Define Task Vars</p> </div> <h5>Example</h5> <pre class="prettyprint"><code> const Beelzebub = require('../../'); const bz = Beelzebub(options || { verbose: true }); const task = Beelzebub.TmplStrFunc.task; class MyTasks extends Beelzebub.Tasks { constructor (config) { super(config); this.$defineTaskVars('task1', { name: { type: 'String', default: 'hello' }, flag: { type: 'Boolean', default: true } }); this.$defineTaskVars('task2', { count: { type: 'Number', required: true }, verbose: { type: 'Boolean', alias: 'v', default: false } }); this.$defineTaskVars('task3', { fullname: { type: 'Object', properties: { first: { type: 'String' }, last: { type: 'String' } } }, list: { type: 'Array', items: { type: 'String' } } }); } task1 (customVars) { this.logger.log(`MyTasks task1 - ${JSON.stringify(this.$getGlobalVars())} ${customVars.name} ${customVars.flag}`); } task2 (customVars) { this.logger.log(`MyTasks task2 - ${customVars.count} ${customVars.verbose}`); } task3 (customVars) { this.logger.log(`MyTasks task3 - "${customVars.fullname.first} ${customVars.fullname.last}" ${customVars.list}`); } } bz.add(MyTasks); let p = bz.run( 'MyTasks.task1', task`MyTasks.task2:${{count: 100, verbose: true}}`, { task: 'MyTasks.task3', vars: { fullname: { first: 'hello', last: 'world' }, list: [ 'te', 'st' ] } } ); /* Output: MyTasks task1 - {} hello true MyTasks task2 - 100 true MyTasks task3 - "hello world" te,st */ </code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>taskName</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>Name of Task</p></td> </tr> <tr> <td class="name"><code>taskDef</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last"><p>Var Defintion for Task</p></td> </tr> </tbody> </table> <h4 class="name" id="$getGlobalVars"><span class="type-signature"></span>$getGlobalVars<span class="signature">()</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line261">line 261</a> </li></ul></dd> </dl> <div class="description"> <p>Get Global Vars</p> </div> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$getName"><span class="type-signature"></span>$getName<span class="signature">()</span><span class="type-signature"> &rarr; {string}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line189">line 189</a> </li></ul></dd> </dl> <div class="description"> <p>Get name of Task Group/Class</p> </div> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">string</span> </dd> </dl> <h4 class="name" id="$getRunning"><span class="type-signature"></span>$getRunning<span class="signature">()</span><span class="type-signature"> &rarr; {boolean}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line365">line 365</a> </li></ul></dd> </dl> <div class="description"> <p>Is Task Running?</p> </div> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">boolean</span> </dd> </dl> <h4 class="name" id="$getStatsSummary"><span class="type-signature"></span>$getStatsSummary<span class="signature">()</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line114">line 114</a> </li></ul></dd> </dl> <div class="description"> <p>Get task status and all it's sub tasks stats</p> </div> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$getSubTask"><span class="type-signature"></span>$getSubTask<span class="signature">(name)</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line215">line 215</a> </li></ul></dd> </dl> <div class="description"> <p>Get SubTask by Name</p> </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>name</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>Name of Sub Task</p></td> </tr> </tbody> </table> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$getSubTasks"><span class="type-signature"></span>$getSubTasks<span class="signature">()</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line239">line 239</a> </li></ul></dd> </dl> <div class="description"> <p>Get All Sub Task(s)</p> </div> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$getTask"><span class="type-signature"></span>$getTask<span class="signature">(name)</span><span class="type-signature"> &rarr; {function}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line198">line 198</a> </li></ul></dd> </dl> <div class="description"> <p>Get Task by Name</p> </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>name</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>Name of Task to get</p></td> </tr> </tbody> </table> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">function</span> </dd> </dl> <h4 class="name" id="$getTaskFlatList"><span class="type-signature"></span>$getTaskFlatList<span class="signature">()</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line93">line 93</a> </li></ul></dd> </dl> <div class="description"> <p>Get flatten task tree so it's one level</p> </div> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$getTaskTree"><span class="type-signature"></span>$getTaskTree<span class="signature">()</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line60">line 60</a> </li></ul></dd> </dl> <div class="description"> <p>Get Task Tree starting with this task</p> </div> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$getVarDefsForTaskName"><span class="type-signature"></span>$getVarDefsForTaskName<span class="signature">(taskStr)</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line298">line 298</a> </li></ul></dd> </dl> <div class="description"> <p>Get Define Task Vars by Name</p> </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>taskStr</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>Name of Task</p></td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> <p>Varaible Definition for Task</p> </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$hasRunBefore"><span class="type-signature"></span>$hasRunBefore<span class="signature">()</span><span class="type-signature"> &rarr; {boolean}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line165">line 165</a> </li></ul></dd> </dl> <div class="description"> <p>Has any of the tasks ran before?</p> </div> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">boolean</span> </dd> </dl> <h4 class="name" id="$hasSubTask"><span class="type-signature"></span>$hasSubTask<span class="signature">(name)</span><span class="type-signature"> &rarr; {boolean}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line231">line 231</a> </li></ul></dd> </dl> <div class="description"> <p>Does this have a Sub Task with the name?</p> </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>name</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>Name of Sub Task</p></td> </tr> </tbody> </table> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">boolean</span> </dd> </dl> <h4 class="name" id="$hasTask"><span class="type-signature"></span>$hasTask<span class="signature">(name)</span><span class="type-signature"> &rarr; {boolean}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line206">line 206</a> </li></ul></dd> </dl> <div class="description"> <p>Does this Task Group have a Task with the name?</p> </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>name</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>Name of Task</p></td> </tr> </tbody> </table> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">boolean</span> </dd> </dl> <h4 class="name" id="$isRoot"><span class="type-signature"></span>$isRoot<span class="signature">()</span><span class="type-signature"> &rarr; {boolean}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line173">line 173</a> </li></ul></dd> </dl> <div class="description"> <p>Is this task root level?</p> </div> <h5>Returns:</h5> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">boolean</span> </dd> </dl> <h4 class="name" id="$parallel"><span class="type-signature"></span>$parallel<span class="signature">(&hellip;args)</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line640">line 640</a> </li></ul></dd> </dl> <div class="description"> <p>Runs task(s) in parallel</p> </div> <h5>Example</h5> <pre class="prettyprint"><code> let Beelzebub = require('../../'); let bz = Beelzebub(options || { verbose: true }); class MyTasks extends Beelzebub.Tasks { _delay (message, delay = 300) { return new Promise((resolve, reject) => { setTimeout(() => { this.logger.log(message); resolve(); }, delay); }); } task1 () { this.logger.log('MyTasks task1'); return this.$parallel('.task3', '.task4'); } task2 () { return this._delay('MyTasks task2', 200); } task3 () { this.logger.log('MyTasks task3'); return this.$run(['.task5', '.task6']); } task4 () { return this._delay('MyTasks task4', 400); } task5 () { this.logger.log('MyTasks task5'); } task6 () { return this._delay('MyTasks task6', 600); } } bz.add(MyTasks); // arrays are run in parallel let p = bz.run(['MyTasks.task1', 'MyTasks.task2']); /* Output: MyTasks task1 MyTasks task3 MyTasks task5 MyTasks task2 MyTasks task4 MyTasks task6 */ </code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>args</code></td> <td class="type"> <span class="param-type">function</span> | <span class="param-type">string</span> </td> <td class="attributes"> &lt;repeatable><br> </td> <td class="description last"><p>task(s)</p></td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> <p>Promise</p> </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$printHelp"><span class="type-signature"></span>$printHelp<span class="signature">()</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line128">line 128</a> </li></ul></dd> </dl> <div class="description"> <p>Prints Task help and all sub tasks help</p> </div> <h5>Example</h5> <pre class="prettyprint"><code> const Beelzebub = require('../../'); const bz = Beelzebub(options || { verbose: true }); class MyTasks extends Beelzebub.Tasks { constructor (config) { super(config); this.$setDefault('task1'); this.$setTaskHelpDocs('task1', 'ES7 Decorator Example MyTasks - Task 1'); this.$setTaskHelpDocs('task2', 'ES7 Decorator Example MyTasks - Task 2'); } task1 () { this.logger.log('MyTasks task1'); } task2 () { this.logger.log('MyTasks task2'); } } bz.add(MyTasks); class MyTasks2 extends bz.Tasks { constructor (config) { super(config); this.$setDefault('task1'); this.$setTaskHelpDocs('task1', 'ES7 Decorator Example MyTasks2 - Task 1'); this.$setTaskHelpDocs('task2', 'ES7 Decorator Example MyTasks2 - Task 2'); } task1 () { this.logger.log('MyTasks2 task1'); } task2 () { this.logger.log('MyTasks2 task2'); } } bz.add(MyTasks2); let p = bz.run('MyTasks', 'MyTasks.task2', 'MyTasks2', 'MyTasks2.task2'); // prints help results // bz.printHelp(); /* Output: MyTasks task1 MyTasks task2 MyTasks2 task1 MyTasks2 task2 */ </code></pre> <h4 class="name" id="$register"><span class="type-signature"></span>$register<span class="signature">()</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line373">line 373</a> </li></ul></dd> </dl> <div class="description"> <p>Register the Task with BZ</p> </div> <h5>Returns:</h5> <div class="param-desc"> <p>Promise</p> </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$run"><span class="type-signature"></span>$run<span class="signature">(&hellip;args)</span><span class="type-signature"> &rarr; {object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line650">line 650</a> </li></ul></dd> </dl> <div class="description"> <p>Runs task(s) - multi args run in sequence, arrays are run in parallel</p> </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>args</code></td> <td class="type"> <span class="param-type">function</span> | <span class="param-type">string</span> </td> <td class="attributes"> &lt;repeatable><br> </td> <td class="description last"><p>task(s)</p></td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> <p>Promise</p> </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> <h4 class="name" id="$sequence"><span class="type-signature"></span>$sequence<span class="signature">(&hellip;args)</span><span class="type-signature"> &rarr; {Object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line629">line 629</a> </li></ul></dd> </dl> <div class="description"> <p>Runs task(s) in sequence</p> </div> <h5>Example</h5> <pre class="prettyprint"><code> let Beelzebub = require('../../'); let bz = Beelzebub(options || { verbose: true }); class MyTasks extends Beelzebub.Tasks { _delay (message, delay = 300) { return new Promise((resolve, reject) => { setTimeout(() => { this.logger.log(message); resolve(); }, delay); }); } task1 () { this.logger.log('MyTasks task1'); return this.$sequence('.task3', '.task4'); } task2 () { return this._delay('MyTasks task2', 200); } task3 () { this.logger.log('MyTasks task3'); return this.$run('.task5', '.task6'); } task4 () { return this._delay('MyTasks task4', 400); } task5 () { this.logger.log('MyTasks task5'); } task6 () { return this._delay('MyTasks task6', 600); } } bz.add(MyTasks); // params are run in sequence let p = bz.run('MyTasks.task1', 'MyTasks.task2'); /* Output: MyTasks task1 MyTasks task3 MyTasks task5 MyTasks task6 MyTasks task4 MyTasks task2 */ </code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>args</code></td> <td class="type"> <span class="param-type">object</span> | <span class="param-type">string</span> </td> <td class="attributes"> &lt;repeatable><br> </td> <td class="description last"><p>task(s)</p></td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> <p>Promise</p> </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">Object</span> </dd> </dl> <h4 class="name" id="$setDefault"><span class="type-signature"></span>$setDefault<span class="signature">(taskFuncName)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line157">line 157</a> </li></ul></dd> </dl> <div class="description"> <p>Set a Task as default</p> </div> <h5>Example</h5> <pre class="prettyprint"><code> let Beelzebub = require('../../'); let bz = Beelzebub(options || { verbose: true }); class MyRootLevel extends Beelzebub.Tasks { constructor (config) { super(config); this.$useAsRoot(); } task1 () { this.logger.log('MyRootLevel task1'); } task2 () { this.logger.log('MyRootLevel task2'); } } class MyTasks1 extends Beelzebub.Tasks { default () { this.logger.log('MyTasks1 default'); } } class MyTasks2 extends Beelzebub.Tasks { constructor (config) { super(config); this.$setDefault('myDefault'); } myDefault () { this.logger.log('MyTasks2 myDefault'); } } bz.add(MyRootLevel); bz.add(MyTasks1); bz.add(MyTasks2); let p = bz.run( 'task1', 'task2', 'MyTasks1', 'MyTasks1.default', 'MyTasks2', 'MyTasks2.myDefault' ); /* Output: MyRootLevel task1 MyRootLevel task2 MyTasks1 default MyTasks1 default MyTasks2 myDefault MyTasks2 myDefault */ </code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>taskFuncName</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>This Class (Task) function name</p></td> </tr> </tbody> </table> <h4 class="name" id="$setGlobalVars"><span class="type-signature"></span>$setGlobalVars<span class="signature">(vars)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line254">line 254</a> </li></ul></dd> </dl> <div class="description"> <p>Set Global Vars</p> </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>vars</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last"></td> </tr> </tbody> </table> <h4 class="name" id="$setName"><span class="type-signature"></span>$setName<span class="signature">(name)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line181">line 181</a> </li></ul></dd> </dl> <div class="description"> <p>Set name of Task Group/Class, when refering to Task Group in CLI or other Tasks</p> </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>name</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>New name of Task Group/Class</p></td> </tr> </tbody> </table> <h4 class="name" id="$setSubTask"><span class="type-signature"></span>$setSubTask<span class="signature">(name, task)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line223">line 223</a> </li></ul></dd> </dl> <div class="description"> <p>Set SubTask</p> </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>name</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>Name of Sub Task</p></td> </tr> <tr> <td class="name"><code>task</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>Task Class</p></td> </tr> </tbody> </table> <h4 class="name" id="$setSubTasks"><span class="type-signature"></span>$setSubTasks<span class="signature">(tasks)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line246">line 246</a> </li></ul></dd> </dl> <div class="description"> <p>Set All Sub Task(s)</p> </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>tasks</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last"></td> </tr> </tbody> </table> <h4 class="name" id="$setTaskHelpDocs"><span class="type-signature"></span>$setTaskHelpDocs<span class="signature">(taskName, helpDocs)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line285">line 285</a> </li></ul></dd> </dl> <div class="description"> <p>Set Help Docs for Task</p> </div> <h5>Example</h5> <pre class="prettyprint"><code> const Beelzebub = require('../../'); const bz = Beelzebub(options || { verbose: true }); class MyTasks extends Beelzebub.Tasks { constructor (config) { super(config); this.$setDefault('task1'); this.$setTaskHelpDocs('task1', 'ES7 Decorator Example MyTasks - Task 1'); this.$setTaskHelpDocs('task2', 'ES7 Decorator Example MyTasks - Task 2'); } task1 () { this.logger.log('MyTasks task1'); } task2 () { this.logger.log('MyTasks task2'); } } bz.add(MyTasks); class MyTasks2 extends bz.Tasks { constructor (config) { super(config); this.$setDefault('task1'); this.$setTaskHelpDocs('task1', 'ES7 Decorator Example MyTasks2 - Task 1'); this.$setTaskHelpDocs('task2', 'ES7 Decorator Example MyTasks2 - Task 2'); } task1 () { this.logger.log('MyTasks2 task1'); } task2 () { this.logger.log('MyTasks2 task2'); } } bz.add(MyTasks2); let p = bz.run('MyTasks', 'MyTasks.task2', 'MyTasks2', 'MyTasks2.task2'); // prints help results // bz.printHelp(); /* Output: MyTasks task1 MyTasks task2