Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/negezor/middleware-io

⛓️ Modern middleware with promises
https://github.com/negezor/middleware-io

middleware promise

Last synced: about 2 months ago
JSON representation

⛓️ Modern middleware with promises

Awesome Lists containing this project

README

        



Build Status
NPM version
NPM downloads

> **Middleware-IO** - Modern middleware on Promise

| 📖 [Documentation](docs/) |
|---------------------------|

## Features

1. **Self-Sufficient.** The library has zero dependencies.
2. **Reliable.** The library is written in **TypeScript** and covered by tests.
3. **Modern.** The library comes with native ESM support
3. **Powerful.** Supports following additional features:
- The library has enough built-in snippets;
- The middleware chain builder;

## Installation
> **[Node.js](https://nodejs.org/) 12.0.0 or newer is required**

- **Using `npm`** (recommended)
```shell
npm i middleware-io
```
- **Using `Yarn`**
```shell
yarn add middleware-io
```
- **Using `pnpm`**
```shell
pnpm add middleware-io
```

## Example usage

```js
import { compose } from 'middleware-io';

const composedMiddleware = compose([
async (context, next) => {
// Step 1

await next();

// Step 4

// Print the current date from the next middleware
console.log(context.now);
},
async (context, next) => {
// Step 2

context.now = Date.now();

await next();

// Step 3
}
]);

composedMiddleware({}, () => { /* Last handler (next) */ })
.then(() => {
console.log('Middleware finished work');
})
.catch(console.error);
```