pomegranate-task-utilities
Version:
Adds Utility methods to compliment pomegranate-task-runner actions.
251 lines (151 loc) • 4.2 kB
Markdown
# Pomegranate Task Utilities
Provides helper functions for working with `Pomegranate-Task-Runner`
### Install
``` shell
yarn add pomegranate pomegranate-task-utilities
# Or..
npm i -S pomegranate pomegranate-task-utilities
```
## Configuration
This plugin exposes 1 configuration option. `queues`
``` javascript
exports.TaskUtilities = function(Env){
return {
queues: [
{
propName: 'Tasks',
queueName: Env.TASK_QUEUE_NAME,
type: 'queue',
RPC: {
enabled: true,
defaultTimeout: 1000
},
msgOptions: {
persistent: true
},
queueOptions: {}
}
]
}
}
```
## Usage
Soon...
## Detailed Documentation
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
### Table of Contents
- [TaskValidator][1]
- [payload][2]
- [notify][3]
- [validate][4]
- [RpcReply][5]
- [TaskBuilder][6]
- [task][7]
- [notifyTask][8]
- [notifyQueue][9]
- [payloadProp][10]
- [notifyProp][11]
- [build][12]
##
./lib/TaskValidator.js
**Meta**
- **author**: Jim Bulkowski <jim.b@paperelectron.com>
- **license**: MIT {@link http://opensource.org/licenses/MIT}
##
./lib/RpcReply.js
**Meta**
- **author**: Jim Bulkowski <jim.b@paperelectron.com>
- **license**: MIT {@link http://opensource.org/licenses/MIT}
##
./lib/TaskBuilder.js
**Meta**
- **author**: Jim Bulkowski <jim.b@paperelectron.com>
- **license**: MIT {@link http://opensource.org/licenses/MIT}
## TaskValidator
**Examples**
```javascript
let valid = new TaskValidator(Data)
.payload(['some', 'paths'])
.notify(['other', 'paths'])
.validate()
```
### payload
Add paths required
**Parameters**
- `paths`
Returns **[TaskValidator][13]**
### notify
**Parameters**
- `paths`
Returns **[TaskValidator][13]**
### validate
Validates the object under test.
**Parameters**
- `logger` **[Object][14]** Pass in a logger to use when outputting errors.
Returns **[boolean][15]** Does the supplied object contain the paths provided.
## RpcReply
Formats and sends Remote Procedure Call replies.
**Parameters**
- `msg` **[Object][14]** And object that will be stringified.
- `options` **[Object][14]** RabbitMQ message options.
- `options.correlationId` **[string][16]** RMQ correlation ID
- `options.replyTo` **[string][16]** RMQ callback queue
Returns **[Promise][17]**
## TaskBuilder
**Examples**
```javascript
let Task = new TaskBuilder()
.task('my.awesome.task')
.payloadProp('level', 'Awesome')
.build()
```
### task
Sets the task name that this builder will target.
**Parameters**
- `taskName` **[string][16]** the taskname to build
Returns **[TaskBuilder][18]**
### notifyTask
Sets a taskname to notify
**Parameters**
- `notifierTaskName` **[string][16]**
Returns **[TaskBuilder][18]**
### notifyQueue
Sets the queuename that a message should send back to.
**Parameters**
- `queueName` **[string][16]** \-
Returns **[TaskBuilder][18]**
### payloadProp
Adds a key-value to the payload of the task.
**Parameters**
- `prop` **[string][16]**
- `val` **any**
Returns **[TaskBuilder][18]**
### notifyProp
Adds a key-value to the payload of the notify task.
**Parameters**
- `prop` **[string][16]**
- `val` **any**
Returns **[TaskBuilder][18]**
### build
Builds your Task Object.
**Parameters**
- `prop` **[string][16]** debug only, returns just this property from .payload
Returns **any**
[1]: #taskvalidator
[2]: #payload
[3]: #notify
[4]: #validate
[5]: #rpcreply
[6]: #taskbuilder
[7]: #task
[8]: #notifytask
[9]: #notifyqueue
[10]: #payloadprop
[11]: #notifyprop
[12]: #build
[13]: #taskvalidator
[14]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
[15]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
[16]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
[17]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
[18]: #taskbuilder