tardis-dev
Version:
Convenient access to tick-level historical and real-time cryptocurrency market data via Node.js
102 lines • 3.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BybitSpotBookTickerMapper = exports.BybitSpotBookChangeMapper = exports.BybitSpotTradesMapper = void 0;
const handy_1 = require("../handy");
class BybitSpotTradesMapper {
constructor(_exchange) {
this._exchange = _exchange;
}
canHandle(message) {
return message.topic === 'trade' && message.data !== undefined;
}
getFilters(symbols) {
symbols = (0, handy_1.upperCaseSymbols)(symbols);
return [
{
channel: 'trade',
symbols
}
];
}
*map(message, localTimestamp) {
const bybitTrade = message.data;
yield {
type: 'trade',
symbol: message.params.symbol,
exchange: this._exchange,
id: bybitTrade.v,
price: Number(bybitTrade.p),
amount: Number(bybitTrade.q),
side: bybitTrade.m === true ? 'buy' : 'sell',
timestamp: new Date(bybitTrade.t),
localTimestamp
};
}
}
exports.BybitSpotTradesMapper = BybitSpotTradesMapper;
class BybitSpotBookChangeMapper {
constructor(_exchange) {
this._exchange = _exchange;
}
canHandle(message) {
return message.topic === 'depth' && message.data !== undefined;
}
getFilters(symbols) {
symbols = (0, handy_1.upperCaseSymbols)(symbols);
return [
{
channel: 'depth',
symbols
}
];
}
*map(message, localTimestamp) {
yield {
type: 'book_change',
symbol: message.params.symbol,
exchange: this._exchange,
isSnapshot: true,
bids: message.data.b.map(this._mapBookLevel),
asks: message.data.a.map(this._mapBookLevel),
timestamp: new Date(message.data.t),
localTimestamp
};
}
_mapBookLevel(level) {
return { price: Number(level[0]), amount: Number(level[1]) };
}
}
exports.BybitSpotBookChangeMapper = BybitSpotBookChangeMapper;
class BybitSpotBookTickerMapper {
constructor(_exchange) {
this._exchange = _exchange;
}
canHandle(message) {
return message.topic === 'bookTicker' && message.data !== undefined;
}
getFilters(symbols) {
symbols = (0, handy_1.upperCaseSymbols)(symbols);
return [
{
channel: 'bookTicker',
symbols
}
];
}
*map(message, localTimestamp) {
const bookTicker = {
type: 'book_ticker',
symbol: message.params.symbol,
exchange: this._exchange,
askAmount: message.data.askQty !== undefined ? Number(message.data.askQty) : undefined,
askPrice: message.data.askPrice !== undefined ? Number(message.data.askPrice) : undefined,
bidPrice: message.data.bidPrice !== undefined ? Number(message.data.bidPrice) : undefined,
bidAmount: message.data.bidQty !== undefined ? Number(message.data.bidQty) : undefined,
timestamp: new Date(message.data.time),
localTimestamp: localTimestamp
};
yield bookTicker;
}
}
exports.BybitSpotBookTickerMapper = BybitSpotBookTickerMapper;
//# sourceMappingURL=bybitspot.js.map