@grvt/client 1.5.0 → 1.5.1
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.
- package/package.json +2 -2
- package/ws/interfaces.d.ts +1 -1
- package/ws/ws.js +34 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grvt/client",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Node.js & JavaScript client for GRVT REST APIs & WebSockets",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"test": "nodemon dist/index.js"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"axios": "^1.
|
|
36
|
+
"axios": "^1.11.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@typescript-eslint/eslint-plugin": "^6.10.0",
|
package/ws/interfaces.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ECandlestickInterval, ECandlestickType, IWSCandlestickFeedDataV1, IWSCandlestickFeedSelectorV1, IWSDepositFeedDataV1, IWSDepositFeedSelectorV1, IWSFillFeedDataV1, IWSFillFeedSelectorV1, IWSMiniTickerFeedDataV1, IWSMiniTickerFeedSelectorV1, IWSOrderFeedDataV1, IWSOrderFeedSelectorV1, IWSOrderGroupFeedDataV1, IWSOrderStateFeedDataV1, IWSOrderStateFeedSelectorV1, IWSOrderbookLevelsFeedDataV1, IWSOrderbookLevelsFeedSelectorV1, IWSPositionsFeedDataV1, IWSPositionsFeedSelectorV1, IWSTickerFeedDataV1, IWSTickerFeedSelectorV1, IWSTradeFeedDataV1, IWSTradeFeedSelectorV1, IWSTransferFeedDataV1, IWSTransferFeedSelectorV1, IWSWithdrawalFeedDataV1, IWSWithdrawalFeedSelectorV1 } from '../interfaces';
|
|
2
2
|
export declare enum EStream {
|
|
3
3
|
CANDLE = "candle",
|
|
4
4
|
MINI_DELTA = "mini.d",
|
package/ws/ws.js
CHANGED
|
@@ -597,30 +597,45 @@ class WS {
|
|
|
597
597
|
this._pairs[pair][consumerKey] = onMessage;
|
|
598
598
|
return `${pair}__${consumerKey}`;
|
|
599
599
|
}
|
|
600
|
-
_removeConsumer(
|
|
601
|
-
const
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
600
|
+
_removeConsumer(...pairedConsumerKeys) {
|
|
601
|
+
const toUnsubscribe = {};
|
|
602
|
+
for (const pairedConsumerKey of pairedConsumerKeys) {
|
|
603
|
+
const [stream, feed, consumerKey] = pairedConsumerKey.split('__');
|
|
604
|
+
const pairKey = this._getPair({ stream, feed });
|
|
605
|
+
if (!this._pairs[pairKey]) {
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
let needUnsubscribe = true;
|
|
609
|
+
const pairPrimary = pairKey.split('@')[0];
|
|
610
|
+
for (const key of Object.keys(this._pairs)) {
|
|
611
|
+
if (key.split('@')[0] !== pairPrimary) {
|
|
612
|
+
continue;
|
|
613
|
+
}
|
|
614
|
+
const primaryGroup = this._pairs[key];
|
|
615
|
+
const _a = primaryGroup, _b = consumerKey, _ = _a[_b], keep = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
|
|
616
|
+
this._pairs[key] = keep;
|
|
617
|
+
if (Object.keys(keep).length) {
|
|
618
|
+
needUnsubscribe = false;
|
|
619
|
+
}
|
|
611
620
|
}
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
621
|
+
if (needUnsubscribe) {
|
|
622
|
+
if (!toUnsubscribe[stream]) {
|
|
623
|
+
toUnsubscribe[stream] = [];
|
|
624
|
+
}
|
|
625
|
+
const primaryFeed = feed.split('@')[0];
|
|
626
|
+
if (!toUnsubscribe[stream].some((f) => f.startsWith(`${primaryFeed}@`))) {
|
|
627
|
+
toUnsubscribe[stream].push(feed);
|
|
628
|
+
}
|
|
617
629
|
}
|
|
618
630
|
}
|
|
619
|
-
|
|
631
|
+
/**
|
|
632
|
+
* Send unsubscribes
|
|
633
|
+
*/
|
|
634
|
+
for (const stream of Object.keys(toUnsubscribe)) {
|
|
620
635
|
this._sendMessage({
|
|
621
636
|
method: 'unsubscribe',
|
|
622
637
|
stream,
|
|
623
|
-
feed: [
|
|
638
|
+
feed: toUnsubscribe[stream]
|
|
624
639
|
});
|
|
625
640
|
}
|
|
626
641
|
}
|
|
@@ -814,9 +829,7 @@ class WS {
|
|
|
814
829
|
});
|
|
815
830
|
}
|
|
816
831
|
unsubscribe(...pairedConsumerKeys) {
|
|
817
|
-
|
|
818
|
-
this._removeConsumer(pairedConsumerKey);
|
|
819
|
-
}
|
|
832
|
+
this._removeConsumer(...pairedConsumerKeys);
|
|
820
833
|
return this;
|
|
821
834
|
}
|
|
822
835
|
connect() {
|