@reyaxyz/api-sdk 0.82.0 → 0.84.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -15,7 +15,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.SocketClient = exports.IncomingMessageTypes = void 0;
|
|
18
|
-
var
|
|
18
|
+
var isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
19
19
|
var common_1 = require("@reyaxyz/common");
|
|
20
20
|
var OutgoingMessageTypes;
|
|
21
21
|
(function (OutgoingMessageTypes) {
|
|
@@ -46,7 +46,7 @@ var SocketClient = /** @class */ (function () {
|
|
|
46
46
|
this.url = (common_1.API_CLIENT_CONFIGS[config.environment] || common_1.API_CLIENT_CONFIGS['test']).webSocketEndpoint;
|
|
47
47
|
}
|
|
48
48
|
SocketClient.prototype.connect = function () {
|
|
49
|
-
this.ws = new
|
|
49
|
+
this.ws = new isomorphic_ws_1.default(this.url);
|
|
50
50
|
this.ws.addEventListener('open', this.handleOpen.bind(this));
|
|
51
51
|
this.ws.addEventListener('close', this.handleClose.bind(this));
|
|
52
52
|
this.ws.addEventListener('message', this.handleMessage.bind(this));
|
|
@@ -159,10 +159,10 @@ var SocketClient = /** @class */ (function () {
|
|
|
159
159
|
* for a specific market and resolution.
|
|
160
160
|
*
|
|
161
161
|
*/
|
|
162
|
-
SocketClient.prototype.subscribeToCandles = function (
|
|
162
|
+
SocketClient.prototype.subscribeToCandles = function (marketTicker, resolution) {
|
|
163
163
|
var channel = SocketChannels.CANDLES;
|
|
164
164
|
var params = {
|
|
165
|
-
id: "".concat(
|
|
165
|
+
id: "".concat(marketTicker, "/").concat(resolution),
|
|
166
166
|
batched: true,
|
|
167
167
|
};
|
|
168
168
|
this.subscribe(channel, params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-client.js","sourceRoot":"/","sources":["clients/socket-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"socket-client.js","sourceRoot":"/","sources":["clients/socket-client.ts"],"names":[],"mappings":"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","sourcesContent":["import WebSocket, { MessageEvent } from 'isomorphic-ws';\n\nimport {\n API_CLIENT_CONFIGS,\n CandlesResolution,\n ServiceConfig,\n} from '@reyaxyz/common';\n\nenum OutgoingMessageTypes {\n PING = 'ping',\n SUBSCRIBE = 'subscribe',\n UNSUBSCRIBE = 'unsubscribe',\n}\n\nenum SocketChannels {\n CANDLES = 'candles',\n}\n\nexport enum IncomingMessageTypes {\n CONNECTED = 'connected',\n SUBSCRIBED = 'subscribed',\n ERROR = 'error',\n CHANNEL_DATA = 'channel_data',\n CHANNEL_BATCH_DATA = 'channel_batch_data',\n PONG = 'pong',\n}\n\nexport interface SocketClientConfig {\n environment: ServiceConfig['environment'];\n onOpen: () => void;\n onClose: () => void;\n onMessage: (event: MessageEvent) => void;\n}\n\nexport class SocketClient {\n private url: string;\n private ws?: WebSocket;\n private onOpenCallback?: () => void;\n private onCloseCallback?: () => void;\n private onMessageCallback?: (event: MessageEvent) => void;\n private pingInterval: number = 30_000;\n private lastMessageTime: number = Date.now();\n private pingIntervalId?: NodeJS.Timeout;\n constructor(config: SocketClientConfig) {\n this.onOpenCallback = config.onOpen;\n this.onCloseCallback = config.onClose;\n this.onMessageCallback = config.onMessage;\n this.url = (\n API_CLIENT_CONFIGS[config.environment] || API_CLIENT_CONFIGS['test']\n ).webSocketEndpoint;\n }\n\n connect(): void {\n this.ws = new WebSocket(this.url);\n this.ws.addEventListener('open', this.handleOpen.bind(this));\n this.ws.addEventListener('close', this.handleClose.bind(this));\n this.ws.addEventListener('message', this.handleMessage.bind(this));\n }\n\n /**\n * @description Close the websocket connection.\n *\n */\n close(): void {\n this.ws?.close();\n this.ws = undefined;\n }\n\n /**\n * @description Send data to the websocket connection.\n *\n */\n send(data: string): void {\n this.ws?.send(data);\n }\n\n private handleOpen(): void {\n if (this.onOpenCallback) {\n this.onOpenCallback();\n }\n this.restartPingInterval();\n }\n\n private handleClose(): void {\n if (this.onCloseCallback) {\n this.onCloseCallback();\n }\n clearInterval(this.pingIntervalId);\n }\n\n private handleMessage(event: MessageEvent): void {\n if (event.data === 'PING') {\n this.send('PONG');\n } else {\n this.lastMessageTime = Date.now();\n if (this.onMessageCallback) {\n this.onMessageCallback(event);\n }\n }\n this.restartPingInterval();\n }\n\n private restartPingInterval(): void {\n clearInterval(this.pingIntervalId);\n this.pingIntervalId = setInterval(() => {\n const elapsedTime = Date.now() - this.lastMessageTime;\n if (elapsedTime > this.pingInterval) {\n const message = {\n type: OutgoingMessageTypes.PING,\n };\n this.send(JSON.stringify(message));\n }\n }, this.pingInterval);\n }\n\n /**\n * @description Set callback when the socket is opened.\n *\n */\n set onOpen(callback: () => void) {\n this.onOpenCallback = callback;\n }\n\n /**\n * @description Set callback when the socket is closed.\n *\n */\n set onClose(callback: () => void) {\n this.onCloseCallback = callback;\n }\n\n /**\n * @description Set callback when the socket receives a message.\n *\n */\n set onMessage(callback: (event: MessageEvent) => void) {\n this.onMessageCallback = callback;\n }\n\n /**\n * @description Send a subscribe message to the websocket connection.\n *\n */\n subscribe(channel: string, params?: object): void {\n const message = {\n type: OutgoingMessageTypes.SUBSCRIBE,\n channel,\n ...params,\n };\n this.send(JSON.stringify(message));\n }\n\n /**\n * @description Send an unsubscribe message to the websocket connection.\n *\n */\n unsubscribe(channel: string, params?: object): void {\n const message = {\n type: OutgoingMessageTypes.UNSUBSCRIBE,\n channel,\n ...params,\n };\n this.send(JSON.stringify(message));\n }\n /**\n * @description Subscribe to candles channel\n * for a specific market and resolution.\n *\n */\n subscribeToCandles(\n marketTicker: string,\n resolution: CandlesResolution,\n ): void {\n const channel = SocketChannels.CANDLES;\n const params = {\n id: `${marketTicker}/${resolution}`,\n batched: true,\n };\n this.subscribe(channel, params);\n }\n\n /**\n * @description Unsubscribe from candles channel\n * for a specific market and resolution.\n */\n unsubscribeFromCandles(market: string, resolution: CandlesResolution): void {\n const channel = SocketChannels.CANDLES;\n const params = {\n id: `${market}/${resolution}`,\n };\n this.unsubscribe(channel, params);\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MessageEvent } from 'ws';
|
|
1
|
+
import { MessageEvent } from 'isomorphic-ws';
|
|
2
2
|
import { CandlesResolution, ServiceConfig } from '@reyaxyz/common';
|
|
3
3
|
export declare enum IncomingMessageTypes {
|
|
4
4
|
CONNECTED = "connected",
|
|
@@ -69,7 +69,7 @@ export declare class SocketClient {
|
|
|
69
69
|
* for a specific market and resolution.
|
|
70
70
|
*
|
|
71
71
|
*/
|
|
72
|
-
subscribeToCandles(
|
|
72
|
+
subscribeToCandles(marketTicker: string, resolution: CandlesResolution): void;
|
|
73
73
|
/**
|
|
74
74
|
* @description Unsubscribe from candles channel
|
|
75
75
|
* for a specific market and resolution.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-client.d.ts","sourceRoot":"/","sources":["clients/socket-client.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"socket-client.d.ts","sourceRoot":"/","sources":["clients/socket-client.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACd,MAAM,iBAAiB,CAAC;AAYzB,oBAAY,oBAAoB;IAC9B,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,IAAI,SAAS;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,iBAAiB,CAAC,CAAgC;IAC1D,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAC5B,MAAM,EAAE,kBAAkB;IAStC,OAAO,IAAI,IAAI;IAOf;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,mBAAmB;IAa3B;;;OAGG;IACH,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,EAE9B;IAED;;;OAGG;IACH,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,EAE/B;IAED;;;OAGG;IACH,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EAEpD;IAED;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IASjD;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQnD;;;;OAIG;IACH,kBAAkB,CAChB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,iBAAiB,GAC5B,IAAI;IASP;;;OAGG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,IAAI;CAO5E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reyaxyz/api-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.84.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -35,11 +35,12 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@reyaxyz/common": "0.93.0",
|
|
37
37
|
"bignumber.js": "^9.1.2",
|
|
38
|
+
"isomorphic-ws": "^5.0.0",
|
|
38
39
|
"ws": "^8.16.0"
|
|
39
40
|
},
|
|
40
41
|
"packageManager": "pnpm@8.3.1",
|
|
41
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "306ce3f6ed0379a4ace146bd97801c0488f906b3",
|
|
42
43
|
"devDependencies": {
|
|
43
|
-
"@types/ws": "
|
|
44
|
+
"@types/ws": "8.5.10"
|
|
44
45
|
}
|
|
45
46
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import WebSocket, { MessageEvent } from 'ws';
|
|
1
|
+
import WebSocket, { MessageEvent } from 'isomorphic-ws';
|
|
2
|
+
|
|
2
3
|
import {
|
|
3
4
|
API_CLIENT_CONFIGS,
|
|
4
5
|
CandlesResolution,
|
|
@@ -166,10 +167,13 @@ export class SocketClient {
|
|
|
166
167
|
* for a specific market and resolution.
|
|
167
168
|
*
|
|
168
169
|
*/
|
|
169
|
-
subscribeToCandles(
|
|
170
|
+
subscribeToCandles(
|
|
171
|
+
marketTicker: string,
|
|
172
|
+
resolution: CandlesResolution,
|
|
173
|
+
): void {
|
|
170
174
|
const channel = SocketChannels.CANDLES;
|
|
171
175
|
const params = {
|
|
172
|
-
id: `${
|
|
176
|
+
id: `${marketTicker}/${resolution}`,
|
|
173
177
|
batched: true,
|
|
174
178
|
};
|
|
175
179
|
this.subscribe(channel, params);
|