1616
1717A ** 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) => {
96125middleware .executeAsync ({ key: ' value' });
97126```
98127
128+ ### ` ContextMiddleware `
129+
130+ ``` typescript
131+ import { ContextMiddleware } 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
101162Your contributions are valued! If you'd like to contribute, please feel free to submit a pull request. Help is always appreciated.
0 commit comments