From 64a85dfb9cc60212dcf1c70ca7be4874936dd332 Mon Sep 17 00:00:00 2001 From: fragosti Date: Thu, 16 Aug 2018 17:03:11 -0700 Subject: Rename websocket files and types --- packages/connect/src/orders_channel_factory.ts | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 packages/connect/src/orders_channel_factory.ts (limited to 'packages/connect/src/orders_channel_factory.ts') diff --git a/packages/connect/src/orders_channel_factory.ts b/packages/connect/src/orders_channel_factory.ts new file mode 100644 index 000000000..4e9b74b2c --- /dev/null +++ b/packages/connect/src/orders_channel_factory.ts @@ -0,0 +1,32 @@ +import * as WebSocket from 'websocket'; + +import { OrdersChannel, OrdersChannelHandler } from './types'; +import { assert } from './utils/assert'; +import { WebSocketOrdersChannel } from './ws_orders_channel'; + +export const ordersChannelFactory = { + /** + * Instantiates a new WebSocketOrdersChannel instance + * @param url The relayer API base WS url you would like to interact with + * @param handler An OrderbookChannelHandler instance that responds to various + * channel updates + * @return An OrderbookChannel Promise + */ + async createWebSocketOrdersChannelAsync( + url: string, + handler: OrdersChannelHandler, + ): Promise { + assert.isUri('url', url); + assert.isOrderbookChannelHandler('handler', handler); + return new Promise((resolve, reject) => { + const client = new WebSocket.w3cwebsocket(url); + client.onopen = () => { + const orderbookChannel = new WebSocketOrdersChannel(client, handler); + resolve(orderbookChannel); + }; + client.onerror = err => { + reject(err); + }; + }); + }, +}; -- cgit