diff options
author | Brandon Millman <brandon@0xproject.com> | 2018-07-12 05:40:19 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-12 05:40:19 +0800 |
commit | b82fdd59e70e92ef139f5eeed8ed383a89866c7d (patch) | |
tree | 41e396a32680d74dfd8122f38ac5b23b7ac7fa5e /packages/connect/src/utils/orderbook_channel_message_parser.ts | |
parent | 8fcc7aefa7651311c5a6348101eb023d28799934 (diff) | |
parent | 6190ac7791cec92b6f4be0735a5914ce2d418ab5 (diff) | |
download | dexon-sol-tools-b82fdd59e70e92ef139f5eeed8ed383a89866c7d.tar dexon-sol-tools-b82fdd59e70e92ef139f5eeed8ed383a89866c7d.tar.gz dexon-sol-tools-b82fdd59e70e92ef139f5eeed8ed383a89866c7d.tar.bz2 dexon-sol-tools-b82fdd59e70e92ef139f5eeed8ed383a89866c7d.tar.lz dexon-sol-tools-b82fdd59e70e92ef139f5eeed8ed383a89866c7d.tar.xz dexon-sol-tools-b82fdd59e70e92ef139f5eeed8ed383a89866c7d.tar.zst dexon-sol-tools-b82fdd59e70e92ef139f5eeed8ed383a89866c7d.zip |
Merge pull request #626 from 0xProject/refactor/connect/browser-websocket-support
Add support for browser websocket client and fix multiple subscriptions bug
Diffstat (limited to 'packages/connect/src/utils/orderbook_channel_message_parser.ts')
-rw-r--r-- | packages/connect/src/utils/orderbook_channel_message_parser.ts | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/packages/connect/src/utils/orderbook_channel_message_parser.ts b/packages/connect/src/utils/orderbook_channel_message_parser.ts index 9a9ca8901..593288078 100644 --- a/packages/connect/src/utils/orderbook_channel_message_parser.ts +++ b/packages/connect/src/utils/orderbook_channel_message_parser.ts @@ -8,10 +8,16 @@ import { relayerResponseJsonParsers } from './relayer_response_json_parsers'; export const orderbookChannelMessageParser = { parse(utf8Data: string): OrderbookChannelMessage { + // parse the message const messageObj = JSON.parse(utf8Data); + // ensure we have a type parameter to switch on const type: string = _.get(messageObj, 'type'); assert.assert(!_.isUndefined(type), `Message is missing a type parameter: ${utf8Data}`); assert.isString('type', type); + // ensure we have a request id for the resulting message + const requestId: number = _.get(messageObj, 'requestId'); + assert.assert(!_.isUndefined(requestId), `Message is missing a requestId parameter: ${utf8Data}`); + assert.isNumber('requestId', requestId); switch (type) { case OrderbookChannelMessageTypes.Snapshot: { assert.doesConformToSchema('message', messageObj, schemas.relayerApiOrderbookChannelSnapshotSchema); @@ -28,7 +34,7 @@ export const orderbookChannelMessageParser = { default: { return { type: OrderbookChannelMessageTypes.Unknown, - requestId: 0, + requestId, payload: undefined, }; } |