UNPKG

tardis-dev

Version:

Convenient access to tick-level historical and real-time cryptocurrency market data via Node.js

55 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BitgetFuturesRealTimeFeed = exports.BitgetRealTimeFeed = void 0; const handy_1 = require("../handy"); const realtimefeed_1 = require("./realtimefeed"); class BitgetRealTimeFeedBase extends realtimefeed_1.RealTimeFeedBase { constructor() { super(...arguments); this.throttleSubscribeMS = 100; this.wssURL = 'wss://ws.bitget.com/v2/ws/public'; } mapToSubscribeMessages(filters) { const argsInputs = filters.flatMap((filter) => { if (!filter.symbols || filter.symbols.length === 0) { throw new Error('BitgetRealTimeFeed requires explicitly specified symbols when subscribing to live feed'); } return filter.symbols.map((symbol) => { return { instType: this.getInstType(symbol), channel: filter.channel, instId: symbol }; }); }); const payload = [...(0, handy_1.batchObjects)(argsInputs, 5)].map((args) => { return { op: 'subscribe', args }; }); return payload; } messageIsError(message) { return message.event === 'error'; } } class BitgetRealTimeFeed extends BitgetRealTimeFeedBase { getInstType(_) { return 'SPOT'; } } exports.BitgetRealTimeFeed = BitgetRealTimeFeed; class BitgetFuturesRealTimeFeed extends BitgetRealTimeFeedBase { getInstType(symbol) { if (symbol.endsWith('USDT')) { return 'USDT-FUTURES'; } if (symbol.endsWith('PERP')) { return 'USDC-FUTURES'; } return 'COIN-FUTURES'; } } exports.BitgetFuturesRealTimeFeed = BitgetFuturesRealTimeFeed; //# sourceMappingURL=bitget.js.map