diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2018-08-24 01:52:09 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2018-08-24 01:52:09 +0800 |
commit | 7ad1a18a4aaa3da23fc013c55babea286a505f9d (patch) | |
tree | ae0e8267091b45dcdf661ec8cd76ce7699a82364 /packages/connect/src/orders_channel_factory.ts | |
parent | 572ad4615a3a0fa5649549cbd65eb912ea7a0e92 (diff) | |
parent | b013cf2e145825a9e250c61bc77825384b2af69e (diff) | |
download | dexon-sol-tools-7ad1a18a4aaa3da23fc013c55babea286a505f9d.tar dexon-sol-tools-7ad1a18a4aaa3da23fc013c55babea286a505f9d.tar.gz dexon-sol-tools-7ad1a18a4aaa3da23fc013c55babea286a505f9d.tar.bz2 dexon-sol-tools-7ad1a18a4aaa3da23fc013c55babea286a505f9d.tar.lz dexon-sol-tools-7ad1a18a4aaa3da23fc013c55babea286a505f9d.tar.xz dexon-sol-tools-7ad1a18a4aaa3da23fc013c55babea286a505f9d.tar.zst dexon-sol-tools-7ad1a18a4aaa3da23fc013c55babea286a505f9d.zip |
Merge branch 'development' into feature/forwarder-helper/init
* development: (31 commits)
Update CI config to check development instead of v2-prototype branch
fix: Make non-interactive npm login for publish tests more robust
Run prettier
Remove comment in updates json-schemas doc
Add documentation for json-schemas
Fix typo
Remove artifacts
Update variable names, make release candidate
Update more names in docs
Improve documentation
Pin sra-report to 0xproject/connect v1.0.4
Run prettier
lint everything
Update websocket for SRA v2
Remove default query parameters
Add networkId request param option
Rename websocket files and types
Use uuid as string for requestId
Update changelogs
Add fee recipients test
...
Diffstat (limited to 'packages/connect/src/orders_channel_factory.ts')
-rw-r--r-- | packages/connect/src/orders_channel_factory.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/connect/src/orders_channel_factory.ts b/packages/connect/src/orders_channel_factory.ts new file mode 100644 index 000000000..5986d2a77 --- /dev/null +++ b/packages/connect/src/orders_channel_factory.ts @@ -0,0 +1,29 @@ +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 OrdersChannelHandler instance that responds to various + * channel updates + * @return An OrdersChannel Promise + */ + async createWebSocketOrdersChannelAsync(url: string, handler: OrdersChannelHandler): Promise<OrdersChannel> { + assert.isUri('url', url); + assert.isOrdersChannelHandler('handler', handler); + return new Promise<OrdersChannel>((resolve, reject) => { + const client = new WebSocket.w3cwebsocket(url); + client.onopen = () => { + const ordersChannel = new WebSocketOrdersChannel(client, handler); + resolve(ordersChannel); + }; + client.onerror = err => { + reject(err); + }; + }); + }, +}; |