v3.8.1: feat() add type guard and type for ws orderbook events

This commit is contained in:
tiagosiebler
2024-01-17 11:41:36 +00:00
parent 1ac1aa5c2e
commit 9cb22d192e
5 changed files with 76 additions and 17 deletions

View File

@@ -1,5 +1,6 @@
export * from './BaseRestClient';
export * from './requestUtils';
export * from './WsStore';
export * from './logger';
export * from './requestUtils';
export * from './typeGuards';
export * from './websocket-util';
export * from './WsStore';

29
src/util/typeGuards.ts Normal file
View File

@@ -0,0 +1,29 @@
/**
* Use type guards to narrow down types with minimal efforts.
*/
import { WSOrderbookEventV5 } from '../types/websocket.events';
/**
* Type guard to detect a V5 orderbook event (delta & snapshots)
*
* @param event
* @returns
*/
export function isWsOrderbookEventV5(
event: unknown,
): event is WSOrderbookEventV5 {
if (
typeof event !== 'object' ||
!event ||
typeof event['topic'] !== 'string' ||
typeof event['type'] !== 'string'
) {
return false;
}
return (
['delta', 'snapshot'].includes(event['type']) &&
event['topic'].startsWith('orderbook')
);
}