UNPKG

@exchanges/binance

Version:

Exchange provider for Binance API

50 lines 2.86 kB
"use strict"; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.diffBookDepthStreams = void 0; const apiCall_1 = require("../../../apiCall"); const safe_parsing_1 = require("@berish/safe-parsing"); function diffBookDepthStreams(client, symbol, updateSpeed, callback) { if (!symbol) throw new TypeError('diffBookDepthStreams symbol is empty'); if (typeof symbol !== 'string') throw new TypeError('diffBookDepthStreams symbol is not string'); if (!updateSpeed) throw new TypeError('diffBookDepthStreams updateSpeed is empty'); if (updateSpeed !== '100ms' && updateSpeed !== '250ms' && updateSpeed !== '500ms') throw new TypeError('diffBookDepthStreams updateSpeed is not 100ms, 250ms or 500ms'); const parseCallback = callback && ((data, error) => { if (error) return callback(void 0, error); const response = (0, safe_parsing_1.parse)(data, (_a) => { var { e, E, T, s, ps, U, u, pu, b, a } = _a, other = __rest(_a, ["e", "E", "T", "s", "ps", "U", "u", "pu", "b", "a"]); return (Object.assign({ eventTime: (0, safe_parsing_1.parse)(E, safe_parsing_1.dateParser), transactionTime: (0, safe_parsing_1.parse)(T, safe_parsing_1.dateParser), symbol: s, pair: ps, firstUpdateIdInEvent: U, finalUpdateIdInEvent: u, finalUpdateIdInLastStream: pu, bids: (0, safe_parsing_1.parseArray)(b, ([price, quantity]) => ({ price: (0, safe_parsing_1.parse)(price, safe_parsing_1.numberParser), quantity: (0, safe_parsing_1.parse)(quantity, safe_parsing_1.numberParser), })), asks: (0, safe_parsing_1.parseArray)(a, ([price, quantity]) => ({ price: (0, safe_parsing_1.parse)(price, safe_parsing_1.numberParser), quantity: (0, safe_parsing_1.parse)(quantity, safe_parsing_1.numberParser), })) }, other)); }); return callback(response); }); return (0, apiCall_1.apiCall)({ host: 'coinM', path: `${symbol.toLowerCase()}@depth${updateSpeed === '250ms' ? '' : `@${updateSpeed}`}`, securityType: 'SOCKET', client, }, parseCallback); } exports.diffBookDepthStreams = diffBookDepthStreams; //# sourceMappingURL=diffBookDepthStreams.js.map