Skip to content

Commit

Permalink
Merge pull request #624 from liquity/isolate-listeners
Browse files Browse the repository at this point in the history
fix: don't let listener errors mess up event dispatch
  • Loading branch information
danielattilasimon authored Jun 28, 2021
2 parents 374f959 + 3d51ea6 commit 1f4270e
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion packages/providers/src/WebSocketAugmentedProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,12 @@ const sequence = <T, U, V>(
f(u => g(h)(u, context))(t, context);
};

const defer = <T>(f: (t: T) => void) => (t: T) => {
setTimeout(() => {
f(t);
}, 0);
};

export const WebSocketAugmented = <T extends new (...args: any[]) => BaseProvider>(Base: T) => {
let webSocketAugmentedProvider = class extends Base implements WebSocketAugmentedProvider {
_wsProvider?: WebSocketProvider;
Expand Down Expand Up @@ -216,7 +222,7 @@ export const WebSocketAugmented = <T extends new (...args: any[]) => BaseProvide
return [
f,
(u: U) =>
g(f)(u, {
g(defer(f))(u, {
isActive: () => this._blockListeners.has(f),
removeMe: () => this._blockListeners.delete(f)
})
Expand Down

0 comments on commit 1f4270e

Please sign in to comment.