Skip to content

Commit cb0d015

Browse files
authored
🐛 Remove chain cache that causes inconsistent execution issues (#23)
2 parents 0ddb74e + 44a6eb0 commit cb0d015

File tree

1 file changed

+0
-43
lines changed

1 file changed

+0
-43
lines changed

src/core/middlewares.ts

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
2717
const createChain = <TMessage extends Message>(
2818
messageType: Message['type'],
2919
handler: MessageHandler<TMessage>,
@@ -103,38 +93,20 @@ const isAddHandlerMiddlewaresOptions = <TMessage extends Message>(
10393

10494
const 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

171129
const clear = () => {
172130
globalMiddlewares.clear();
173131
messageMiddlewares.clear();
174132
handlerMiddlewares.clear();
175-
cache.splice(0, cache.length);
176133
};
177134

178135
export const middlewares = {

0 commit comments

Comments
 (0)