@@ -14,16 +14,6 @@ const handlerMiddlewares: Map<
1414 ReadonlyArray < Middleware >
1515> = new Map ( ) ;
1616
17- type CacheItem = {
18- key : {
19- messageType : string ;
20- handler : MessageHandler ;
21- } ;
22- value : MessageHandler ;
23- } ;
24-
25- const cache : Array < CacheItem > = [ ] ;
26-
2717const createChain = < TMessage extends Message > (
2818 messageType : Message [ 'type' ] ,
2919 handler : MessageHandler < TMessage > ,
@@ -103,38 +93,20 @@ const isAddHandlerMiddlewaresOptions = <TMessage extends Message>(
10393
10494const add = < TMessage extends Message > ( options : AddOptions < TMessage > ) => {
10595 if ( isAddMessageMiddlewaresOptions ( options ) ) {
106- const cacheItems = cache . filter (
107- ( item ) => item . key . messageType === options . messageType ,
108- ) ;
109- for ( const cacheItem of cacheItems ) {
110- cache . splice ( cache . indexOf ( cacheItem ) , 1 ) ;
111- }
112-
11396 const middlewares = messageMiddlewares . get ( options . messageType ) ?? [ ] ;
11497
11598 messageMiddlewares . set ( options . messageType , [
11699 ...middlewares ,
117100 ...( options . middlewares as ReadonlyArray < Middleware > ) ,
118101 ] ) ;
119102 } else if ( isAddHandlerMiddlewaresOptions ( options ) ) {
120- const cacheItem = cache . find (
121- ( item ) => item . key . handler === options . handler ,
122- ) ;
123-
124- if ( cacheItem ) {
125- cache . splice ( cache . indexOf ( cacheItem ) , 1 ) ;
126- }
127-
128103 const middlewares = handlerMiddlewares . get ( options . handler ) ?? [ ] ;
129104
130105 handlerMiddlewares . set ( options . handler , [
131106 ...middlewares ,
132107 ...( options . middlewares as ReadonlyArray < Middleware > ) ,
133108 ] ) ;
134109 } else {
135- if ( cache . length > 0 ) {
136- cache . splice ( 0 , cache . length ) ;
137- }
138110 for ( const middleware of options . middlewares ) {
139111 globalMiddlewares . add ( middleware ) ;
140112 }
@@ -149,30 +121,15 @@ const apply = <TMessage extends Message>(
149121 return handler ;
150122 }
151123
152- const cacheItem = cache . find ( ( item ) => item . key . handler === handler ) ;
153-
154- if ( cacheItem ) {
155- return cacheItem . value ;
156- }
157-
158124 const handlerWithMiddlewareChain = createChain ( messageType , handler ) ;
159125
160- cache . push ( {
161- key : {
162- handler,
163- messageType,
164- } ,
165- value : handlerWithMiddlewareChain ,
166- } ) ;
167-
168126 return handlerWithMiddlewareChain ;
169127} ;
170128
171129const clear = ( ) => {
172130 globalMiddlewares . clear ( ) ;
173131 messageMiddlewares . clear ( ) ;
174132 handlerMiddlewares . clear ( ) ;
175- cache . splice ( 0 , cache . length ) ;
176133} ;
177134
178135export const middlewares = {
0 commit comments