Skip to content

Commit 6fcaa3c

Browse files
docs(README.md): update.
1 parent 2bfebf9 commit 6fcaa3c

File tree

1 file changed

+63
-2
lines changed

1 file changed

+63
-2
lines changed

README.md

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,17 @@
1616

1717
A **lightweight** TypeScript library for middleware.
1818

19-
## Features
20-
2119
## Table of contents
2220

21+
- [Features](#features)
2322
- [Installation](#installation)
2423
- [Api](#api)
24+
- Abstract
25+
- [`ContextMiddlewareBase`](#contextmiddlewarebase)
26+
- [`MiddlewareBase`](#middlewarebase)
27+
- [`MiddlewareCore`](#middlewarecore)
2528
- Class
29+
- [`ContextMiddleware`](#contextmiddleware)
2630
- [`Middleware`](#middleware)
2731
- [Contributing](#contributing)
2832
- [Support](#support)
@@ -33,6 +37,13 @@ A **lightweight** TypeScript library for middleware.
3337
- [License](#license)
3438
- [Related packages](#related-packages)
3539

40+
### Features
41+
42+
- **Core abstraction**: Class for both arguments-based (array) and object-based (context) middleware.
43+
- **Base abstraction**: Extends core abstraction with functionality to build new arguments-based middlewares.
44+
- **Concrete class**: Extension of base for initialization.
45+
- **Context middleware**: Context object-based `ContextMiddleware` base and concrete middleware built on `MiddlewareBase`.
46+
3647
## Installation
3748

3849
### 1. Install the package
@@ -43,6 +54,24 @@ npm install @typescript-package/middleware --save-peer
4354

4455
## Api
4556

57+
### `ContextMiddlewareBase`
58+
59+
```typescript
60+
import { ContextMiddlewareBase } from '@typescript-package/middleware';
61+
```
62+
63+
### `MiddlewareCore`
64+
65+
```typescript
66+
import { MiddlewareCore } from '@typescript-package/middleware';
67+
```
68+
69+
### `MiddlewareBase`
70+
71+
```typescript
72+
import { MiddlewareBase } from '@typescript-package/middleware';
73+
```
74+
4675
### `Middleware`
4776

4877
```typescript
@@ -96,6 +125,38 @@ middleware.onComplete((args) => {
96125
middleware.executeAsync({ key: 'value' });
97126
```
98127

128+
### `MiddlewareContext`
129+
130+
```typescript
131+
import { MiddlewareContext } from '@typescript-package/middleware';
132+
133+
const contextMiddleware = new ContextMiddleware<{ req: string; res?: string }>(
134+
(context, next: () => void) => {
135+
console.log('Middleware 0 executed with args:', context);
136+
next();
137+
},
138+
(context, next: () => void) => {
139+
console.log('Middleware 00 executed with args:', context);
140+
next();
141+
}
142+
);
143+
144+
contextMiddleware.use((context, next) => {
145+
console.log('Middleware 1 executed with args:', context);
146+
context.req = 'newValue';
147+
next();
148+
});
149+
150+
151+
contextMiddleware.use((context, next) => {
152+
console.log('Middleware 2 executed with args:', context);
153+
next();
154+
});
155+
156+
contextMiddleware.execute({ req: 'value' });
157+
158+
```
159+
99160
## Contributing
100161

101162
Your contributions are valued! If you'd like to contribute, please feel free to submit a pull request. Help is always appreciated.

0 commit comments

Comments
 (0)