UNPKG

binance

Version:

Professional Node.js & JavaScript SDK for Binance REST APIs & WebSockets, with TypeScript & end-to-end tests.

80 lines 3.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ListenKeyStateCache = void 0; const logger_1 = require("../logger"); class ListenKeyStateCache { constructor(customLogger) { this.listenKeyStateStore = {}; this.logger = customLogger || logger_1.DefaultLogger; } getListenKeyState(listenKey, market) { const state = this.listenKeyStateStore[listenKey]; if (state) { return state; } // this.logger.trace( // `--> getListenKeyState(${market}) -> CREATED NEW listenKeyState for ${listenKey}`, // ); this.listenKeyStateStore[listenKey] = { market, lastKeepAlive: 0, keepAliveTimer: undefined, keepAliveRetryTimer: undefined, keepAliveFailures: 0, }; return this.listenKeyStateStore[listenKey]; } clearUserDataKeepAliveTimer(listenKey) { const state = this.listenKeyStateStore[listenKey]; if (!state) { // this.logger.trace( // `clearUserDataKeepAliveTimer() -> No listenKeyState found for ${listenKey}`, // ); return; } if (state.keepAliveTimer) { // this.logger.trace( // `----> clearUserDataKeepAliveTimer() -> CLEARED old listenKey keepAlive INTERVAL timer for ${listenKey}`, // ); clearInterval(state.keepAliveTimer); } else { // this.logger.trace( // `----> clearUserDataKeepAliveTimer() -> No listen key keepAlive INTERVAL timer to clear for ${listenKey}`, // ); } if (state.keepAliveRetryTimer) { // this.logger.trace( // `----> clearUserDataKeepAliveTimer() -> CLEARED old listen key keepAlive RETRY timer for ${listenKey}`, // ); clearTimeout(state.keepAliveRetryTimer); } else { // this.logger.trace( // `----> clearUserDataKeepAliveTimer() -> No keepAlive RETRY timer to clear for ${listenKey}`, // ); } } /** * Remove all state for listen key. Clears timers too, if any exist on this listen key store. */ clearAllListenKeyState(listenKey) { // this.logger.trace( // `clearAllListenKeyState() -> Checking whether we need to clear timers and remove state for ${listenKey}`, // ); this.clearUserDataKeepAliveTimer(listenKey); if (this.listenKeyStateStore[listenKey]) { // this.logger.trace( // `-> clearAllListenKeyState() -> CLEARED ALL listen key state for ${listenKey}`, // ); } else { // this.logger.trace( // `-> clearAllListenKeyState() -> No listen key state to clear ${listenKey}`, // ); } delete this.listenKeyStateStore[listenKey]; } } exports.ListenKeyStateCache = ListenKeyStateCache; //# sourceMappingURL=listen-key-state-cache.js.map