@binance/common 1.2.2 → 1.2.3
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/dist/index.d.mts +8 -4
- package/dist/index.d.ts +8 -4
- package/dist/index.js +41 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +41 -28
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -721,6 +721,10 @@ declare class WebsocketEventEmitter {
|
|
|
721
721
|
off(event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong', listener: (...args: any[]) => void): void;
|
|
722
722
|
protected emit(event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong', ...args: any[]): void;
|
|
723
723
|
}
|
|
724
|
+
interface TimerRecord {
|
|
725
|
+
timer?: NodeJS.Timeout;
|
|
726
|
+
type: 'timeout' | 'interval';
|
|
727
|
+
}
|
|
724
728
|
interface WebsocketConnection {
|
|
725
729
|
id: string;
|
|
726
730
|
reconnectionPending: boolean;
|
|
@@ -744,7 +748,7 @@ declare class WebsocketCommon extends WebsocketEventEmitter {
|
|
|
744
748
|
private static readonly MAX_CONNECTION_DURATION;
|
|
745
749
|
private readonly connectionQueue;
|
|
746
750
|
private queueProcessing;
|
|
747
|
-
|
|
751
|
+
protected connectionTimers: Map<WebSocketClient, Set<TimerRecord>>;
|
|
748
752
|
private mode;
|
|
749
753
|
private poolSize;
|
|
750
754
|
private roundRobinIndex;
|
|
@@ -794,13 +798,13 @@ declare class WebsocketCommon extends WebsocketEventEmitter {
|
|
|
794
798
|
* @param type Timer type ('timeout' or 'interval')
|
|
795
799
|
* @returns Timer handle
|
|
796
800
|
*/
|
|
797
|
-
|
|
801
|
+
protected scheduleTimer(connection: WebSocketClient, callback: () => void, delay: number, type?: 'timeout' | 'interval'): NodeJS.Timeout;
|
|
798
802
|
/**
|
|
799
803
|
* Clears all timers associated with a WebSocket connection.
|
|
800
804
|
* @param connection - The WebSocket client instance to clear timers for.
|
|
801
805
|
* @returns void
|
|
802
806
|
*/
|
|
803
|
-
|
|
807
|
+
protected clearTimers(connection: WebSocketClient): void;
|
|
804
808
|
/**
|
|
805
809
|
* Processes the connection queue, reconnecting or renewing connections as needed.
|
|
806
810
|
* This method is responsible for iterating through the connection queue and initiating
|
|
@@ -1079,4 +1083,4 @@ interface WebsocketStream<T> {
|
|
|
1079
1083
|
*/
|
|
1080
1084
|
declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
|
|
1081
1085
|
|
|
1082
|
-
export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
|
1086
|
+
export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, type TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
package/dist/index.d.ts
CHANGED
|
@@ -721,6 +721,10 @@ declare class WebsocketEventEmitter {
|
|
|
721
721
|
off(event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong', listener: (...args: any[]) => void): void;
|
|
722
722
|
protected emit(event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong', ...args: any[]): void;
|
|
723
723
|
}
|
|
724
|
+
interface TimerRecord {
|
|
725
|
+
timer?: NodeJS.Timeout;
|
|
726
|
+
type: 'timeout' | 'interval';
|
|
727
|
+
}
|
|
724
728
|
interface WebsocketConnection {
|
|
725
729
|
id: string;
|
|
726
730
|
reconnectionPending: boolean;
|
|
@@ -744,7 +748,7 @@ declare class WebsocketCommon extends WebsocketEventEmitter {
|
|
|
744
748
|
private static readonly MAX_CONNECTION_DURATION;
|
|
745
749
|
private readonly connectionQueue;
|
|
746
750
|
private queueProcessing;
|
|
747
|
-
|
|
751
|
+
protected connectionTimers: Map<WebSocketClient, Set<TimerRecord>>;
|
|
748
752
|
private mode;
|
|
749
753
|
private poolSize;
|
|
750
754
|
private roundRobinIndex;
|
|
@@ -794,13 +798,13 @@ declare class WebsocketCommon extends WebsocketEventEmitter {
|
|
|
794
798
|
* @param type Timer type ('timeout' or 'interval')
|
|
795
799
|
* @returns Timer handle
|
|
796
800
|
*/
|
|
797
|
-
|
|
801
|
+
protected scheduleTimer(connection: WebSocketClient, callback: () => void, delay: number, type?: 'timeout' | 'interval'): NodeJS.Timeout;
|
|
798
802
|
/**
|
|
799
803
|
* Clears all timers associated with a WebSocket connection.
|
|
800
804
|
* @param connection - The WebSocket client instance to clear timers for.
|
|
801
805
|
* @returns void
|
|
802
806
|
*/
|
|
803
|
-
|
|
807
|
+
protected clearTimers(connection: WebSocketClient): void;
|
|
804
808
|
/**
|
|
805
809
|
* Processes the connection queue, reconnecting or renewing connections as needed.
|
|
806
810
|
* This method is responsible for iterating through the connection queue and initiating
|
|
@@ -1079,4 +1083,4 @@ interface WebsocketStream<T> {
|
|
|
1079
1083
|
*/
|
|
1080
1084
|
declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
|
|
1081
1085
|
|
|
1082
|
-
export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
|
1086
|
+
export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, type TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
package/dist/index.js
CHANGED
|
@@ -905,10 +905,24 @@ var WebsocketCommon = class _WebsocketCommon extends WebsocketEventEmitter {
|
|
|
905
905
|
* @returns Timer handle
|
|
906
906
|
*/
|
|
907
907
|
scheduleTimer(connection, callback, delay2, type = "timeout") {
|
|
908
|
-
|
|
909
|
-
if (!
|
|
910
|
-
|
|
911
|
-
|
|
908
|
+
let timers = this.connectionTimers.get(connection);
|
|
909
|
+
if (!timers) {
|
|
910
|
+
timers = /* @__PURE__ */ new Set();
|
|
911
|
+
this.connectionTimers.set(connection, timers);
|
|
912
|
+
}
|
|
913
|
+
const timerRecord = { type };
|
|
914
|
+
const wrappedTimeout = () => {
|
|
915
|
+
try {
|
|
916
|
+
callback();
|
|
917
|
+
} finally {
|
|
918
|
+
timers.delete(timerRecord);
|
|
919
|
+
}
|
|
920
|
+
};
|
|
921
|
+
let timer;
|
|
922
|
+
if (type === "timeout") timer = setTimeout(wrappedTimeout, delay2);
|
|
923
|
+
else timer = setInterval(callback, delay2);
|
|
924
|
+
timerRecord.timer = timer;
|
|
925
|
+
timers.add(timerRecord);
|
|
912
926
|
return timer;
|
|
913
927
|
}
|
|
914
928
|
/**
|
|
@@ -1170,13 +1184,13 @@ var WebsocketCommon = class _WebsocketCommon extends WebsocketEventEmitter {
|
|
|
1170
1184
|
this.onMessage(data.toString(), targetConnection);
|
|
1171
1185
|
});
|
|
1172
1186
|
ws.on("ping", () => {
|
|
1173
|
-
this.logger.
|
|
1187
|
+
this.logger.debug("Received PING from server");
|
|
1174
1188
|
this.emit("ping");
|
|
1175
1189
|
ws.pong();
|
|
1176
|
-
this.logger.
|
|
1190
|
+
this.logger.debug("Responded PONG to server's PING message");
|
|
1177
1191
|
});
|
|
1178
1192
|
ws.on("pong", () => {
|
|
1179
|
-
this.logger.
|
|
1193
|
+
this.logger.debug("Received PONG from server");
|
|
1180
1194
|
this.emit("pong");
|
|
1181
1195
|
});
|
|
1182
1196
|
ws.on("error", (err) => {
|
|
@@ -1256,7 +1270,7 @@ var WebsocketCommon = class _WebsocketCommon extends WebsocketEventEmitter {
|
|
|
1256
1270
|
this.logger.warn("Ping only can be sent when connection is ready.");
|
|
1257
1271
|
return;
|
|
1258
1272
|
}
|
|
1259
|
-
this.logger.
|
|
1273
|
+
this.logger.debug("Sending PING to all connected Websocket servers.");
|
|
1260
1274
|
connectedConnections.forEach((connection) => {
|
|
1261
1275
|
if (connection.ws) {
|
|
1262
1276
|
connection.ws.ping();
|
|
@@ -1278,7 +1292,7 @@ var WebsocketCommon = class _WebsocketCommon extends WebsocketEventEmitter {
|
|
|
1278
1292
|
*/
|
|
1279
1293
|
send(payload, id, promiseBased = true, timeout = 5e3, connection) {
|
|
1280
1294
|
if (!this.isConnected(connection)) {
|
|
1281
|
-
const errorMsg = "
|
|
1295
|
+
const errorMsg = "Unable to send message \u2014 connection is not available.";
|
|
1282
1296
|
this.logger.warn(errorMsg);
|
|
1283
1297
|
if (promiseBased) return Promise.reject(new Error(errorMsg));
|
|
1284
1298
|
else throw new Error(errorMsg);
|
|
@@ -1294,17 +1308,22 @@ var WebsocketCommon = class _WebsocketCommon extends WebsocketEventEmitter {
|
|
|
1294
1308
|
if (promiseBased) {
|
|
1295
1309
|
return new Promise((resolve, reject) => {
|
|
1296
1310
|
if (!id) return reject(new Error("id is required for promise-based sending."));
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1311
|
+
const timeoutHandle = setTimeout(() => {
|
|
1312
|
+
if (connectionToUse.pendingRequests.has(id)) {
|
|
1313
|
+
connectionToUse.pendingRequests.delete(id);
|
|
1314
|
+
reject(new Error(`Request timeout for id: ${id}`));
|
|
1315
|
+
}
|
|
1316
|
+
}, timeout);
|
|
1317
|
+
connectionToUse.pendingRequests.set(id, {
|
|
1318
|
+
resolve: (v) => {
|
|
1319
|
+
clearTimeout(timeoutHandle);
|
|
1320
|
+
resolve(v);
|
|
1305
1321
|
},
|
|
1306
|
-
|
|
1307
|
-
|
|
1322
|
+
reject: (e) => {
|
|
1323
|
+
clearTimeout(timeoutHandle);
|
|
1324
|
+
reject(e);
|
|
1325
|
+
}
|
|
1326
|
+
});
|
|
1308
1327
|
});
|
|
1309
1328
|
}
|
|
1310
1329
|
}
|
|
@@ -1384,13 +1403,13 @@ var WebsocketAPIBase = class extends WebsocketCommon {
|
|
|
1384
1403
|
reject(new Error("Websocket connection timed out"));
|
|
1385
1404
|
}, 1e4);
|
|
1386
1405
|
this.connectPool(this.prepareURL(this.configuration.wsURL)).then(() => {
|
|
1387
|
-
clearTimeout(timeout);
|
|
1388
1406
|
this.isConnecting = false;
|
|
1389
1407
|
resolve();
|
|
1390
1408
|
}).catch((error) => {
|
|
1391
|
-
clearTimeout(timeout);
|
|
1392
1409
|
this.isConnecting = false;
|
|
1393
1410
|
reject(error);
|
|
1411
|
+
}).finally(() => {
|
|
1412
|
+
clearTimeout(timeout);
|
|
1394
1413
|
});
|
|
1395
1414
|
});
|
|
1396
1415
|
}
|
|
@@ -1561,13 +1580,7 @@ var WebsocketStreamsBase = class extends WebsocketCommon {
|
|
|
1561
1580
|
const timeout = setTimeout(() => {
|
|
1562
1581
|
reject(new Error("Websocket connection timed out"));
|
|
1563
1582
|
}, 1e4);
|
|
1564
|
-
this.connectPool(this.prepareURL(streams)).then(() =>
|
|
1565
|
-
clearTimeout(timeout);
|
|
1566
|
-
resolve();
|
|
1567
|
-
}).catch((error) => {
|
|
1568
|
-
clearTimeout(timeout);
|
|
1569
|
-
reject(error);
|
|
1570
|
-
});
|
|
1583
|
+
this.connectPool(this.prepareURL(streams)).then(() => resolve()).catch((error) => reject(error)).finally(() => clearTimeout(timeout));
|
|
1571
1584
|
});
|
|
1572
1585
|
}
|
|
1573
1586
|
/**
|