tardis-dev
Version:
Convenient access to tick-level historical and real-time cryptocurrency market data via Node.js
55 lines • 1.87 kB
JavaScript
;
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