An open API service indexing awesome lists of open source software.

https://github.com/maxerbox/parallel-handle-fisherman

A parallel middleware handler, usign async
https://github.com/maxerbox/parallel-handle-fisherman

command discord fisherman framework middleware parallel

Last synced: about 1 month ago
JSON representation

A parallel middleware handler, usign async

Awesome Lists containing this project

README

          

# Parallel Handler Fisherman

> Execute the middlewares in parallel, not in chain.
> Copyright © 2017, Simon Sassi

The Parallel Handler can be useful for async stuff that can run in parallel

## Usage

Same as fisherman.use

```javascript
const fisherman = require("fisherman-discord.js")
var bot = new fisherman.Fisherman({ prefixes: ['test!'] })
const ParallelHandling = require("./lib/index")
var parallelHandling = new ParallelHandling()
parallelHandling.use({parallelHandle: function(router, callback){
if(router.req.isCommand) console.log(router.req)
callback()
}})
bot.use(parallelHandling)
```

## Creating a middleware compatible with the Parallel Handler

You have to add a function named `parallelHandle` inside your middleware class/object

`parallelHandle` is called with two arguments :

| Argument | Description |
| ---- | ---- |
| router | A router object (see doc below) |
| callback | an async callback (see doc below) |

### router

A simple object, with two properties:

* `req` : The fisherman request
* `res` : The fisherman response

### callback

A function that call back, where you can pass an error with `callback(err)`. You can of course pass `true` if you want to just block the middleware chain and don't trigger any fishercode

### setUp() handling (^1.0.3)

Since the 1.0.3 version, the setUp handling is available. It's almost same as the Fisherman default setUp handler, but for reference reason, the client is inside a `container`

Example

```javascript
setUp(container, next) {
var client = container.client
console.log(client)
next()

next(new Error('throwing an error')) // you can also pass an error
}
```

### The callback as to be trigerred, else, the middleware loop will be blocked

## Api

### parallelHandling.use(middleware)

Append a middleware to the Parallel Handler

## Badge

It's a simple badge to show that your middleware is compatible with the Parallel Handler

![badge](https://github.com/maxerbox/parallel-handle-fisherman/blob/master/badge.png)