Skip to content

Commit 7b914df

Browse files
committed
feat(): wrap emit in error handler, emit array events as before, fix mark price type guard
1 parent 1046bb0 commit 7b914df

File tree

2 files changed

+30
-9
lines changed

2 files changed

+30
-9
lines changed

src/util/BaseWSClient.ts

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,19 @@ function getFinalEmittable(
137137
}
138138

139139
if (Array.isArray(emittable.event)) {
140-
const { event, ...others } = emittable;
141-
return {
142-
...others,
143-
event: event.map((subEvent) =>
144-
getFinalEmittable(subEvent, wsKey, isWSAPIResponse),
145-
),
146-
};
140+
// Some topics just emit an array.
141+
// This is consistent with how it was before the WS API upgrade:
142+
return emittable.event.map((subEvent) =>
143+
getFinalEmittable(subEvent, wsKey, isWSAPIResponse),
144+
);
145+
146+
// const { event, ...others } = emittable;
147+
// return {
148+
// ...others,
149+
// event: event.map((subEvent) =>
150+
// getFinalEmittable(subEvent, wsKey, isWSAPIResponse),
151+
// ),
152+
// };
147153
}
148154

149155
if (emittable.event) {
@@ -1196,7 +1202,22 @@ export abstract class BaseWebsocketClient<
11961202
}
11971203

11981204
// Other event types are automatically emitted here
1199-
this.emit(emittable.eventType, emittableFinalEvent);
1205+
// this.logger.trace(
1206+
// `onWsMessage().emit(${emittable.eventType})`,
1207+
// emittableFinalEvent,
1208+
// );
1209+
try {
1210+
this.emit(emittable.eventType, emittableFinalEvent);
1211+
} catch (e) {
1212+
this.logger.error(
1213+
`Exception in onWsMessage().emit(${emittable.eventType}) handler:`,
1214+
e,
1215+
);
1216+
}
1217+
// this.logger.trace(
1218+
// `onWsMessage().emit(${emittable.eventType}).done()`,
1219+
// emittableFinalEvent,
1220+
// );
12001221
}
12011222

12021223
return;

src/util/typeGuards.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export function isWsFormattedMarkPriceUpdateArray(
6161
return (
6262
Array.isArray(data) &&
6363
data.length !== 0 &&
64-
data[0].eventType === 'markPriceUpdate'
64+
['markPriceUpdate', 'markPrice'].includes(data[0].eventType)
6565
);
6666
}
6767

0 commit comments

Comments
 (0)