* Websocket prevday percentage * @param {array/string} symbols - an array or string of symbols to query * @param {function} callback - callback function * @param {boolean} singleCallback - avoid call one callback for each symbol in data array * @return {string} the websocket endp
(symbols: string[] | string | undefined, callback?: Callback, singleCallback?: Callback)
| 6802 | * @return {string} the websocket endpoint |
| 6803 | */ |
| 6804 | prevDayStream(symbols: string[] | string | undefined, callback?: Callback, singleCallback?: Callback) { |
| 6805 | const reconnect = () => { |
| 6806 | if (this.Options.reconnect) this.prevDayStream(symbols, callback, singleCallback); |
| 6807 | }; |
| 6808 | |
| 6809 | let subscription; |
| 6810 | const prevDayStreamHandler = this.prevDayStreamHandler.bind(this); |
| 6811 | // Combine stream for array of symbols |
| 6812 | if (Array.isArray(symbols)) { |
| 6813 | if (!this.isArrayUnique(symbols)) throw Error('prevDay: "symbols" cannot contain duplicate elements.'); |
| 6814 | const streams = symbols.map(function (symbol) { |
| 6815 | return symbol.toLowerCase() + '@ticker'; |
| 6816 | }); |
| 6817 | subscription = this.subscribeCombined(streams, function (data: any) { |
| 6818 | prevDayStreamHandler(data, callback); |
| 6819 | }, reconnect); |
| 6820 | // Raw stream for a single symbol |
| 6821 | } else if (symbols) { |
| 6822 | const symbol = symbols; |
| 6823 | subscription = this.subscribe(symbol.toLowerCase() + '@ticker', function (data: any) { |
| 6824 | prevDayStreamHandler(data, callback); |
| 6825 | }, reconnect); |
| 6826 | // Raw stream of all listed symbols |
| 6827 | } else { |
| 6828 | subscription = this.subscribe('!miniTicker@arr', function (data: any) { |
| 6829 | if (singleCallback) { |
| 6830 | prevDayStreamHandler(data, callback); |
| 6831 | } else { |
| 6832 | for (const line of data) { |
| 6833 | prevDayStreamHandler(line, callback); |
| 6834 | } |
| 6835 | } |
| 6836 | }, reconnect); |
| 6837 | } |
| 6838 | return (subscription as any).url; |
| 6839 | } |
| 6840 | } |
no test coverage detected