tardis-dev 13.1.0 → 13.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/combine.js +34 -26
- package/dist/combine.js.map +1 -1
- package/dist/computable/computable.d.ts.map +1 -1
- package/dist/computable/computable.js +23 -18
- package/dist/computable/computable.js.map +1 -1
- package/dist/handy.d.ts +2 -0
- package/dist/handy.d.ts.map +1 -1
- package/dist/handy.js +15 -1
- package/dist/handy.js.map +1 -1
- package/dist/mappers/ascendex.d.ts +1 -1
- package/dist/mappers/ascendex.d.ts.map +1 -1
- package/dist/mappers/ascendex.js +5 -0
- package/dist/mappers/ascendex.js.map +1 -1
- package/dist/mappers/binance.d.ts +1 -1
- package/dist/mappers/binance.d.ts.map +1 -1
- package/dist/mappers/binance.js +5 -11
- package/dist/mappers/binance.js.map +1 -1
- package/dist/mappers/binancedex.d.ts +1 -1
- package/dist/mappers/binancedex.d.ts.map +1 -1
- package/dist/mappers/binancedex.js +4 -0
- package/dist/mappers/binancedex.js.map +1 -1
- package/dist/mappers/binanceoptions.d.ts.map +1 -1
- package/dist/mappers/binanceoptions.js +3 -0
- package/dist/mappers/binanceoptions.js.map +1 -1
- package/dist/mappers/bitfinex.d.ts +1 -1
- package/dist/mappers/bitfinex.d.ts.map +1 -1
- package/dist/mappers/bitfinex.js +5 -0
- package/dist/mappers/bitfinex.js.map +1 -1
- package/dist/mappers/bitflyer.d.ts +1 -1
- package/dist/mappers/bitflyer.d.ts.map +1 -1
- package/dist/mappers/bitflyer.js +3 -0
- package/dist/mappers/bitflyer.js.map +1 -1
- package/dist/mappers/bitmex.d.ts +1 -1
- package/dist/mappers/bitmex.d.ts.map +1 -1
- package/dist/mappers/bitmex.js +5 -0
- package/dist/mappers/bitmex.js.map +1 -1
- package/dist/mappers/bitstamp.d.ts.map +1 -1
- package/dist/mappers/bitstamp.js +3 -8
- package/dist/mappers/bitstamp.js.map +1 -1
- package/dist/mappers/bybit.d.ts.map +1 -1
- package/dist/mappers/bybit.js +5 -0
- package/dist/mappers/bybit.js.map +1 -1
- package/dist/mappers/coinbase.d.ts.map +1 -1
- package/dist/mappers/coinbase.js +3 -0
- package/dist/mappers/coinbase.js.map +1 -1
- package/dist/mappers/coinflex.d.ts +1 -1
- package/dist/mappers/coinflex.d.ts.map +1 -1
- package/dist/mappers/coinflex.js +4 -0
- package/dist/mappers/coinflex.js.map +1 -1
- package/dist/mappers/cryptofacilities.d.ts +1 -1
- package/dist/mappers/cryptofacilities.d.ts.map +1 -1
- package/dist/mappers/cryptofacilities.js +6 -0
- package/dist/mappers/cryptofacilities.js.map +1 -1
- package/dist/mappers/delta.d.ts +1 -1
- package/dist/mappers/delta.d.ts.map +1 -1
- package/dist/mappers/delta.js +4 -0
- package/dist/mappers/delta.js.map +1 -1
- package/dist/mappers/deribit.d.ts +1 -1
- package/dist/mappers/deribit.d.ts.map +1 -1
- package/dist/mappers/deribit.js +6 -0
- package/dist/mappers/deribit.js.map +1 -1
- package/dist/mappers/dydx.d.ts +1 -1
- package/dist/mappers/dydx.d.ts.map +1 -1
- package/dist/mappers/dydx.js +4 -0
- package/dist/mappers/dydx.js.map +1 -1
- package/dist/mappers/ftx.d.ts +1 -1
- package/dist/mappers/ftx.d.ts.map +1 -1
- package/dist/mappers/ftx.js +5 -0
- package/dist/mappers/ftx.js.map +1 -1
- package/dist/mappers/gateio.d.ts.map +1 -1
- package/dist/mappers/gateio.js +3 -0
- package/dist/mappers/gateio.js.map +1 -1
- package/dist/mappers/gateiofutures.d.ts +1 -1
- package/dist/mappers/gateiofutures.d.ts.map +1 -1
- package/dist/mappers/gateiofutures.js +4 -0
- package/dist/mappers/gateiofutures.js.map +1 -1
- package/dist/mappers/gemini.d.ts.map +1 -1
- package/dist/mappers/gemini.js +3 -0
- package/dist/mappers/gemini.js.map +1 -1
- package/dist/mappers/hitbtc.d.ts.map +1 -1
- package/dist/mappers/hitbtc.js +3 -0
- package/dist/mappers/hitbtc.js.map +1 -1
- package/dist/mappers/huobi.d.ts +2 -2
- package/dist/mappers/huobi.d.ts.map +1 -1
- package/dist/mappers/huobi.js +4 -2
- package/dist/mappers/huobi.js.map +1 -1
- package/dist/mappers/kraken.d.ts.map +1 -1
- package/dist/mappers/kraken.js +3 -0
- package/dist/mappers/kraken.js.map +1 -1
- package/dist/mappers/okex.d.ts +10 -8
- package/dist/mappers/okex.d.ts.map +1 -1
- package/dist/mappers/okex.js +24 -9
- package/dist/mappers/okex.js.map +1 -1
- package/dist/mappers/poloniex.d.ts.map +1 -1
- package/dist/mappers/poloniex.js +3 -0
- package/dist/mappers/poloniex.js.map +1 -1
- package/dist/mappers/serum.d.ts +1 -1
- package/dist/mappers/serum.d.ts.map +1 -1
- package/dist/mappers/serum.js +9 -0
- package/dist/mappers/serum.js.map +1 -1
- package/dist/mappers/upbit.d.ts +1 -1
- package/dist/mappers/upbit.d.ts.map +1 -1
- package/dist/mappers/upbit.js +3 -0
- package/dist/mappers/upbit.js.map +1 -1
- package/package.json +1 -1
- package/src/combine.ts +33 -27
- package/src/computable/computable.ts +21 -17
- package/src/handy.ts +14 -0
- package/src/mappers/ascendex.ts +6 -1
- package/src/mappers/binance.ts +2 -9
- package/src/mappers/binancedex.ts +6 -1
- package/src/mappers/binanceoptions.ts +7 -1
- package/src/mappers/bitfinex.ts +10 -1
- package/src/mappers/bitflyer.ts +8 -2
- package/src/mappers/bitmex.ts +12 -2
- package/src/mappers/bitstamp.ts +1 -7
- package/src/mappers/bybit.ts +9 -0
- package/src/mappers/coinbase.ts +7 -1
- package/src/mappers/coinflex.ts +8 -1
- package/src/mappers/cryptofacilities.ts +12 -1
- package/src/mappers/delta.ts +8 -1
- package/src/mappers/deribit.ts +14 -2
- package/src/mappers/dydx.ts +8 -1
- package/src/mappers/ftx.ts +12 -2
- package/src/mappers/gateio.ts +5 -0
- package/src/mappers/gateiofutures.ts +8 -1
- package/src/mappers/gemini.ts +5 -0
- package/src/mappers/hitbtc.ts +5 -0
- package/src/mappers/huobi.ts +7 -3
- package/src/mappers/kraken.ts +7 -1
- package/src/mappers/okex.ts +41 -12
- package/src/mappers/poloniex.ts +5 -0
- package/src/mappers/serum.ts +14 -2
- package/src/mappers/upbit.ts +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poloniex.js","sourceRoot":"","sources":["../../src/mappers/poloniex.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"poloniex.js","sourceRoot":"","sources":["../../src/mappers/poloniex.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers/serum.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { BookChange, BookTicker, Exchange, Trade } from '../types';
|
|
1
2
|
import { Mapper } from './mapper';
|
|
2
|
-
import { Trade, BookChange, BookTicker, Exchange } from '../types';
|
|
3
3
|
export declare class SerumTradesMapper implements Mapper<'serum' | 'star-atlas', Trade> {
|
|
4
4
|
private readonly _exchange;
|
|
5
5
|
constructor(_exchange: Exchange);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serum.d.ts","sourceRoot":"","sources":["../../src/mappers/serum.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serum.d.ts","sourceRoot":"","sources":["../../src/mappers/serum.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers/serum.js
CHANGED
|
@@ -10,6 +10,9 @@ class SerumTradesMapper {
|
|
|
10
10
|
return message.type === 'trade';
|
|
11
11
|
}
|
|
12
12
|
getFilters(symbols) {
|
|
13
|
+
if (this._exchange === 'serum') {
|
|
14
|
+
symbols = (0, handy_1.upperCaseSymbols)(symbols);
|
|
15
|
+
}
|
|
13
16
|
return [
|
|
14
17
|
{
|
|
15
18
|
channel: 'trade',
|
|
@@ -40,6 +43,9 @@ class SerumBookChangeMapper {
|
|
|
40
43
|
return message.type === 'l2snapshot' || message.type === 'l2update';
|
|
41
44
|
}
|
|
42
45
|
getFilters(symbols) {
|
|
46
|
+
if (this._exchange === 'serum') {
|
|
47
|
+
symbols = (0, handy_1.upperCaseSymbols)(symbols);
|
|
48
|
+
}
|
|
43
49
|
return [
|
|
44
50
|
{
|
|
45
51
|
channel: 'l2snapshot',
|
|
@@ -78,6 +84,9 @@ class SerumBookTickerMapper {
|
|
|
78
84
|
return message.type === 'quote';
|
|
79
85
|
}
|
|
80
86
|
getFilters(symbols) {
|
|
87
|
+
if (this._exchange === 'serum') {
|
|
88
|
+
symbols = (0, handy_1.upperCaseSymbols)(symbols);
|
|
89
|
+
}
|
|
81
90
|
return [
|
|
82
91
|
{
|
|
83
92
|
channel: 'quote',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serum.js","sourceRoot":"","sources":["../../src/mappers/serum.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"serum.js","sourceRoot":"","sources":["../../src/mappers/serum.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers/upbit.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { BookChange, Trade } from '../types';
|
|
1
2
|
import { Mapper } from './mapper';
|
|
2
|
-
import { Trade, BookChange } from '../types';
|
|
3
3
|
export declare class UpbitTradesMapper implements Mapper<'upbit', Trade> {
|
|
4
4
|
canHandle(message: UpbitTrade): boolean;
|
|
5
5
|
getFilters(symbols?: string[]): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upbit.d.ts","sourceRoot":"","sources":["../../src/mappers/upbit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upbit.d.ts","sourceRoot":"","sources":["../../src/mappers/upbit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkB,KAAK,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,qBAAa,iBAAkB,YAAW,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAC9D,SAAS,CAAC,OAAO,EAAE,UAAU;IAI7B,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE;;;;IAW5B,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC;CAazE;AAED,qBAAa,qBAAsB,YAAW,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IACvE,SAAS,CAAC,OAAO,EAAE,cAAc;IAIjC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE;;;;IAW5B,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC;CA8BlF;AAED,aAAK,UAAU,GAAG;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,aAAa,CAAA;IACxB,UAAU,EAAE,YAAY,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,aAAa,CAAA;IAC9B,WAAW,EAAE,IAAI,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,KAAK,CAAA;IACd,kBAAkB,EAAE,IAAI,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,GAAG,CAAA;IACjB,aAAa,EAAE,gBAAgB,CAAA;IAC/B,WAAW,EAAE,UAAU,CAAA;CACxB,CAAA;AAED,aAAK,cAAc,GAAG;IACpB,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,SAAS,CAAA;IACf,SAAS,EAAE,aAAa,CAAA;IACxB,cAAc,EAAE,aAAa,CAAA;IAC7B,cAAc,EAAE,aAAa,CAAA;IAC7B,eAAe,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC/F,WAAW,EAAE,UAAU,CAAA;CACxB,CAAA"}
|
package/dist/mappers/upbit.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UpbitBookChangeMapper = exports.UpbitTradesMapper = void 0;
|
|
4
|
+
const handy_1 = require("../handy");
|
|
4
5
|
class UpbitTradesMapper {
|
|
5
6
|
canHandle(message) {
|
|
6
7
|
return message.type === 'trade';
|
|
7
8
|
}
|
|
8
9
|
getFilters(symbols) {
|
|
10
|
+
symbols = (0, handy_1.upperCaseSymbols)(symbols);
|
|
9
11
|
return [
|
|
10
12
|
{
|
|
11
13
|
channel: 'trade',
|
|
@@ -33,6 +35,7 @@ class UpbitBookChangeMapper {
|
|
|
33
35
|
return message.type === 'orderbook';
|
|
34
36
|
}
|
|
35
37
|
getFilters(symbols) {
|
|
38
|
+
symbols = (0, handy_1.upperCaseSymbols)(symbols);
|
|
36
39
|
return [
|
|
37
40
|
{
|
|
38
41
|
channel: 'orderbook',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upbit.js","sourceRoot":"","sources":["../../src/mappers/upbit.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"upbit.js","sourceRoot":"","sources":["../../src/mappers/upbit.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAI3C,MAAa,iBAAiB;IAC5B,SAAS,CAAC,OAAmB;QAC3B,OAAO,OAAO,CAAC,IAAI,KAAK,OAAO,CAAA;IACjC,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,OAAmB,EAAE,cAAoB;QAC5C,MAAM;YACJ,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,QAAQ,EAAE,OAAO;YACjB,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;YACjC,KAAK,EAAE,OAAO,CAAC,WAAW;YAC1B,MAAM,EAAE,OAAO,CAAC,YAAY;YAC5B,IAAI,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YAChD,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAC5C,cAAc,EAAE,cAAc;SAC/B,CAAA;IACH,CAAC;CACF;AA7BD,8CA6BC;AAED,MAAa,qBAAqB;IAChC,SAAS,CAAC,OAAuB;QAC/B,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,CAAA;IACrC,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,WAAW;gBACpB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,OAAuB,EAAE,cAAoB;QAChD,IAAI,IAAI,GAAqB,EAAE,CAAA;QAC/B,IAAI,IAAI,GAAqB,EAAE,CAAA;QAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,eAAe,EAAE;YAC3C,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,MAAM,EAAE,KAAK,CAAC,QAAQ;iBACvB,CAAC,CAAA;aACH;YAED,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,MAAM,EAAE,KAAK,CAAC,QAAQ;iBACvB,CAAC,CAAA;aACH;SACF;QACD,MAAM;YACJ,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,IAAI;YAChB,IAAI;YACJ,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACtC,cAAc;SACf,CAAA;IACH,CAAC;CACF;AA9CD,sDA8CC"}
|
package/package.json
CHANGED
package/src/combine.ts
CHANGED
|
@@ -119,34 +119,40 @@ export async function* combine<
|
|
|
119
119
|
async function* combineHistorical(
|
|
120
120
|
iterators: AsyncIterableIterator<Combinable>[] | { stream: AsyncIterableIterator<Combinable>; offsetMS: OffsetMS }[]
|
|
121
121
|
) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
122
|
+
try {
|
|
123
|
+
// wait for all results to resolve
|
|
124
|
+
const results = await Promise.all(iterators.map(nextWithIndex))
|
|
125
|
+
let aliveIteratorsCount = results.length
|
|
126
|
+
do {
|
|
127
|
+
// if we're dealing with historical data replay
|
|
128
|
+
// and need to return combined messages iterable sorted by local timestamp in ascending order
|
|
129
|
+
|
|
130
|
+
// find resolved one that is the 'oldest'
|
|
131
|
+
const oldestResult = results.reduce(findOldestResult, results[0])
|
|
132
|
+
const { result, index } = oldestResult
|
|
133
|
+
|
|
134
|
+
if (result.done) {
|
|
135
|
+
aliveIteratorsCount--
|
|
136
|
+
|
|
137
|
+
// we don't want finished iterators to every be considered 'oldest' again
|
|
138
|
+
// hence provide them with result that has local timestamp set to DATE_MAX
|
|
139
|
+
// and that is not done
|
|
140
|
+
|
|
141
|
+
results[index].result = {
|
|
142
|
+
done: false,
|
|
143
|
+
value: {
|
|
144
|
+
localTimestamp: DATE_MAX
|
|
145
|
+
}
|
|
144
146
|
}
|
|
147
|
+
} else {
|
|
148
|
+
// yield oldest value and replace with next value from iterable for given index
|
|
149
|
+
yield result.value
|
|
150
|
+
results[index] = await nextWithIndex(iterators[index], index)
|
|
145
151
|
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
152
|
+
} while (aliveIteratorsCount > 0)
|
|
153
|
+
} finally {
|
|
154
|
+
for (let iterator of iterators) {
|
|
155
|
+
;(iterator as any).return()
|
|
150
156
|
}
|
|
151
|
-
}
|
|
157
|
+
}
|
|
152
158
|
}
|
|
@@ -11,30 +11,34 @@ async function* _compute<T extends ComputableFactory<any>[], U extends Normalize
|
|
|
11
11
|
messages: AsyncIterableIterator<U>,
|
|
12
12
|
...computables: T
|
|
13
13
|
): AsyncIterableIterator<T extends ComputableFactory<infer Z>[] ? (U extends Disconnect ? U | Z | Disconnect : U | Z) : never> {
|
|
14
|
-
|
|
14
|
+
try {
|
|
15
|
+
const factory = new Computables(computables)
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
for await (const message of messages) {
|
|
18
|
+
// always pass through source message
|
|
19
|
+
yield message as any
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
if (message.type === 'disconnect') {
|
|
22
|
+
// reset all computables for given exchange if we've received disconnect for it
|
|
23
|
+
factory.reset(message.exchange)
|
|
24
|
+
continue
|
|
25
|
+
}
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
const normalizedMessage = message as NormalizedData
|
|
28
|
+
const id = normalizedMessage.name !== undefined ? `${normalizedMessage.symbol}:${normalizedMessage.name}` : normalizedMessage.symbol
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
const computablesMap = factory.getOrCreate(normalizedMessage.exchange, id)
|
|
31
|
+
const computables = computablesMap[normalizedMessage.type]
|
|
32
|
+
if (!computables) continue
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
for (const computable of computables) {
|
|
35
|
+
for (const computedMessage of computable.compute(normalizedMessage)) {
|
|
36
|
+
yield computedMessage
|
|
37
|
+
}
|
|
36
38
|
}
|
|
37
39
|
}
|
|
40
|
+
} finally {
|
|
41
|
+
messages.return!()
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
44
|
|
package/src/handy.ts
CHANGED
|
@@ -451,4 +451,18 @@ if (httpsProxyAgent !== undefined) {
|
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
453
|
|
|
454
|
+
export function upperCaseSymbols(symbols?: string[]) {
|
|
455
|
+
if (symbols !== undefined) {
|
|
456
|
+
return symbols.map((s) => s.toUpperCase())
|
|
457
|
+
}
|
|
458
|
+
return
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
export function lowerCaseSymbols(symbols?: string[]) {
|
|
462
|
+
if (symbols !== undefined) {
|
|
463
|
+
return symbols.map((s) => s.toLowerCase())
|
|
464
|
+
}
|
|
465
|
+
return
|
|
466
|
+
}
|
|
467
|
+
|
|
454
468
|
export const httpClient = got.extend(gotDefaultOptions)
|
package/src/mappers/ascendex.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookTicker, DerivativeTicker, Trade } from '../types'
|
|
1
3
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
2
|
-
import { Trade, BookChange, DerivativeTicker, BookTicker } from '../types'
|
|
3
4
|
|
|
4
5
|
export class AscendexTradesMapper implements Mapper<'ascendex', Trade> {
|
|
5
6
|
canHandle(message: AscendexTrade) {
|
|
@@ -7,6 +8,7 @@ export class AscendexTradesMapper implements Mapper<'ascendex', Trade> {
|
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
getFilters(symbols?: string[]) {
|
|
11
|
+
symbols = upperCaseSymbols(symbols)
|
|
10
12
|
return [
|
|
11
13
|
{
|
|
12
14
|
channel: 'trades',
|
|
@@ -38,6 +40,7 @@ export class AscendexBookChangeMapper implements Mapper<'ascendex', BookChange>
|
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
getFilters(symbols?: string[]) {
|
|
43
|
+
symbols = upperCaseSymbols(symbols)
|
|
41
44
|
return [
|
|
42
45
|
{
|
|
43
46
|
channel: 'depth-realtime',
|
|
@@ -78,6 +81,7 @@ export class AscendexDerivativeTickerMapper implements Mapper<'ascendex', Deriva
|
|
|
78
81
|
}
|
|
79
82
|
|
|
80
83
|
getFilters(symbols?: string[]) {
|
|
84
|
+
symbols = upperCaseSymbols(symbols)
|
|
81
85
|
return [
|
|
82
86
|
{
|
|
83
87
|
channel: 'futures-pricing-data',
|
|
@@ -120,6 +124,7 @@ export class AscendexBookTickerMapper implements Mapper<'ascendex', BookTicker>
|
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
getFilters(symbols?: string[]) {
|
|
127
|
+
symbols = upperCaseSymbols(symbols)
|
|
123
128
|
return [
|
|
124
129
|
{
|
|
125
130
|
channel: 'bbo',
|
package/src/mappers/binance.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { debug } from '../debug'
|
|
2
|
-
import { CircularBuffer } from '../handy'
|
|
3
|
-
import { BookChange, DerivativeTicker, Exchange, FilterForExchange, Liquidation,
|
|
2
|
+
import { CircularBuffer, lowerCaseSymbols } from '../handy'
|
|
3
|
+
import { BookChange, BookTicker, DerivativeTicker, Exchange, FilterForExchange, Liquidation, Trade } from '../types'
|
|
4
4
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
5
5
|
|
|
6
6
|
// https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md
|
|
@@ -447,13 +447,6 @@ export class BinanceBookTickerMapper implements Mapper<'binance-futures' | 'bina
|
|
|
447
447
|
}
|
|
448
448
|
}
|
|
449
449
|
|
|
450
|
-
function lowerCaseSymbols(symbols?: string[]) {
|
|
451
|
-
if (symbols !== undefined) {
|
|
452
|
-
return symbols.map((s) => s.toLowerCase())
|
|
453
|
-
}
|
|
454
|
-
return
|
|
455
|
-
}
|
|
456
|
-
|
|
457
450
|
type BinanceResponse<T> = {
|
|
458
451
|
stream: string
|
|
459
452
|
data: T
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookTicker, Trade } from '../types'
|
|
2
3
|
import { Mapper } from './mapper'
|
|
3
4
|
|
|
4
5
|
// https://docs.binance.org/api-reference/dex-api/ws-streams.html
|
|
@@ -9,6 +10,8 @@ export const binanceDexTradesMapper: Mapper<'binance-dex', Trade> = {
|
|
|
9
10
|
},
|
|
10
11
|
|
|
11
12
|
getFilters(symbols?: string[]) {
|
|
13
|
+
symbols = upperCaseSymbols(symbols)
|
|
14
|
+
|
|
12
15
|
return [
|
|
13
16
|
{
|
|
14
17
|
channel: 'trades',
|
|
@@ -46,6 +49,7 @@ export const binanceDexBookChangeMapper: Mapper<'binance-dex', BookChange> = {
|
|
|
46
49
|
},
|
|
47
50
|
|
|
48
51
|
getFilters(symbols?: string[]) {
|
|
52
|
+
symbols = upperCaseSymbols(symbols)
|
|
49
53
|
return [
|
|
50
54
|
{
|
|
51
55
|
channel: 'depthSnapshot',
|
|
@@ -96,6 +100,7 @@ export const binanceDexBookTickerMapper: Mapper<'binance-dex', BookTicker> = {
|
|
|
96
100
|
},
|
|
97
101
|
|
|
98
102
|
getFilters(symbols?: string[]) {
|
|
103
|
+
symbols = upperCaseSymbols(symbols)
|
|
99
104
|
return [
|
|
100
105
|
{
|
|
101
106
|
channel: 'ticker',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { asNumberIfValid } from '../handy'
|
|
1
|
+
import { asNumberIfValid, upperCaseSymbols } from '../handy'
|
|
2
2
|
import { BookChange, OptionSummary, Trade } from '../types'
|
|
3
3
|
import { Mapper } from './mapper'
|
|
4
4
|
|
|
@@ -15,6 +15,8 @@ export class BinanceOptionsTradesMapper implements Mapper<'binance-options', Tra
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
getFilters(symbols?: string[]) {
|
|
18
|
+
symbols = upperCaseSymbols(symbols)
|
|
19
|
+
|
|
18
20
|
return [
|
|
19
21
|
{
|
|
20
22
|
channel: 'TRADE',
|
|
@@ -68,6 +70,8 @@ export class BinanceOptionsBookChangeMapper implements Mapper<'binance-options',
|
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
getFilters(symbols?: string[]) {
|
|
73
|
+
symbols = upperCaseSymbols(symbols)
|
|
74
|
+
|
|
71
75
|
return [
|
|
72
76
|
{
|
|
73
77
|
channel: 'DEPTH100',
|
|
@@ -109,6 +113,8 @@ export class BinanceOptionSummaryMapper implements Mapper<'binance-options', Opt
|
|
|
109
113
|
}
|
|
110
114
|
|
|
111
115
|
getFilters(symbols?: string[]) {
|
|
116
|
+
symbols = upperCaseSymbols(symbols)
|
|
117
|
+
|
|
112
118
|
const indexes =
|
|
113
119
|
symbols !== undefined
|
|
114
120
|
? symbols.map((s) => {
|
package/src/mappers/bitfinex.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookTicker, DerivativeTicker, Exchange, FilterForExchange, Liquidation, Trade } from '../types'
|
|
2
3
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
3
4
|
|
|
4
5
|
// https://docs.bitfinex.com/v2/docs/ws-general
|
|
@@ -33,6 +34,8 @@ export class BitfinexTradesMapper implements Mapper<'bitfinex' | 'bitfinex-deriv
|
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
getFilters(symbols?: string[]) {
|
|
37
|
+
symbols = upperCaseSymbols(symbols)
|
|
38
|
+
|
|
36
39
|
return [
|
|
37
40
|
{
|
|
38
41
|
channel: 'trades',
|
|
@@ -107,6 +110,8 @@ export class BitfinexBookChangeMapper implements Mapper<'bitfinex' | 'bitfinex-d
|
|
|
107
110
|
}
|
|
108
111
|
|
|
109
112
|
getFilters(symbols?: string[]) {
|
|
113
|
+
symbols = upperCaseSymbols(symbols)
|
|
114
|
+
|
|
110
115
|
return [
|
|
111
116
|
{
|
|
112
117
|
channel: 'book',
|
|
@@ -187,6 +192,8 @@ export class BitfinexDerivativeTickerMapper implements Mapper<'bitfinex-derivati
|
|
|
187
192
|
}
|
|
188
193
|
|
|
189
194
|
getFilters(symbols?: string[]) {
|
|
195
|
+
symbols = upperCaseSymbols(symbols)
|
|
196
|
+
|
|
190
197
|
return [
|
|
191
198
|
{
|
|
192
199
|
channel: 'status',
|
|
@@ -345,6 +352,8 @@ export class BitfinexBookTickerMapper implements Mapper<'bitfinex' | 'bitfinex-d
|
|
|
345
352
|
}
|
|
346
353
|
|
|
347
354
|
getFilters(symbols?: string[]) {
|
|
355
|
+
symbols = upperCaseSymbols(symbols)
|
|
356
|
+
|
|
348
357
|
return [
|
|
349
358
|
{
|
|
350
359
|
channel: 'ticker',
|
package/src/mappers/bitflyer.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { parseμs } from '../handy'
|
|
2
|
-
import { BookChange,
|
|
1
|
+
import { parseμs, upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookTicker, Trade } from '../types'
|
|
3
3
|
import { Mapper } from './mapper'
|
|
4
4
|
|
|
5
5
|
export const bitflyerTradesMapper: Mapper<'bitflyer', Trade> = {
|
|
@@ -8,6 +8,8 @@ export const bitflyerTradesMapper: Mapper<'bitflyer', Trade> = {
|
|
|
8
8
|
},
|
|
9
9
|
|
|
10
10
|
getFilters(symbols?: string[]) {
|
|
11
|
+
symbols = upperCaseSymbols(symbols)
|
|
12
|
+
|
|
11
13
|
return [
|
|
12
14
|
{
|
|
13
15
|
channel: 'lightning_executions',
|
|
@@ -52,6 +54,8 @@ export class BitflyerBookChangeMapper implements Mapper<'bitflyer', BookChange>
|
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
getFilters(symbols?: string[]) {
|
|
57
|
+
symbols = upperCaseSymbols(symbols)
|
|
58
|
+
|
|
55
59
|
return [
|
|
56
60
|
{
|
|
57
61
|
channel: 'lightning_board_snapshot',
|
|
@@ -97,6 +101,8 @@ export const bitflyerBookTickerMapper: Mapper<'bitflyer', BookTicker> = {
|
|
|
97
101
|
},
|
|
98
102
|
|
|
99
103
|
getFilters(symbols?: string[]) {
|
|
104
|
+
symbols = upperCaseSymbols(symbols)
|
|
105
|
+
|
|
100
106
|
return [
|
|
101
107
|
{
|
|
102
108
|
channel: 'lightning_ticker',
|
package/src/mappers/bitmex.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { asNumberIfValid } from '../handy'
|
|
2
|
-
import { BookChange, BookPriceLevel, DerivativeTicker, FilterForExchange, Liquidation, Trade
|
|
1
|
+
import { asNumberIfValid, upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookPriceLevel, BookTicker, DerivativeTicker, FilterForExchange, Liquidation, Trade } from '../types'
|
|
3
3
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
4
4
|
|
|
5
5
|
// https://www.bitmex.com/app/wsAPI
|
|
@@ -10,6 +10,8 @@ export const bitmexTradesMapper: Mapper<'bitmex', Trade> = {
|
|
|
10
10
|
},
|
|
11
11
|
|
|
12
12
|
getFilters(symbols?: string[]) {
|
|
13
|
+
symbols = upperCaseSymbols(symbols)
|
|
14
|
+
|
|
13
15
|
return [
|
|
14
16
|
{
|
|
15
17
|
channel: 'trade',
|
|
@@ -45,6 +47,8 @@ export class BitmexBookChangeMapper implements Mapper<'bitmex', BookChange> {
|
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
getFilters(symbols?: string[]) {
|
|
50
|
+
symbols = upperCaseSymbols(symbols)
|
|
51
|
+
|
|
48
52
|
return [
|
|
49
53
|
{
|
|
50
54
|
channel: 'orderBookL2',
|
|
@@ -150,6 +154,8 @@ export class BitmexDerivativeTickerMapper implements Mapper<'bitmex', Derivative
|
|
|
150
154
|
}
|
|
151
155
|
|
|
152
156
|
getFilters(symbols?: string[]) {
|
|
157
|
+
symbols = upperCaseSymbols(symbols)
|
|
158
|
+
|
|
153
159
|
return [
|
|
154
160
|
{
|
|
155
161
|
channel: 'instrument',
|
|
@@ -198,6 +204,8 @@ export const bitmexLiquidationsMapper: Mapper<'bitmex', Liquidation> = {
|
|
|
198
204
|
},
|
|
199
205
|
|
|
200
206
|
getFilters(symbols?: string[]) {
|
|
207
|
+
symbols = upperCaseSymbols(symbols)
|
|
208
|
+
|
|
201
209
|
return [
|
|
202
210
|
{
|
|
203
211
|
channel: 'liquidation',
|
|
@@ -231,6 +239,8 @@ export const bitmexBookTickerMapper: Mapper<'bitmex', BookTicker> = {
|
|
|
231
239
|
},
|
|
232
240
|
|
|
233
241
|
getFilters(symbols?: string[]) {
|
|
242
|
+
symbols = upperCaseSymbols(symbols)
|
|
243
|
+
|
|
234
244
|
return [
|
|
235
245
|
{
|
|
236
246
|
channel: 'quote',
|
package/src/mappers/bitstamp.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { lowerCaseSymbols } from '../handy'
|
|
1
2
|
import { BookChange, Trade } from '../types'
|
|
2
3
|
import { Mapper } from './mapper'
|
|
3
4
|
|
|
@@ -168,13 +169,6 @@ export class BitstampBookChangeMapper implements Mapper<'bitstamp', BookChange>
|
|
|
168
169
|
}
|
|
169
170
|
}
|
|
170
171
|
|
|
171
|
-
function lowerCaseSymbols(symbols?: string[]) {
|
|
172
|
-
if (symbols !== undefined) {
|
|
173
|
-
return symbols.map((s) => s.toLowerCase())
|
|
174
|
-
}
|
|
175
|
-
return
|
|
176
|
-
}
|
|
177
|
-
|
|
178
172
|
type BitstampTrade = {
|
|
179
173
|
event: 'trade'
|
|
180
174
|
channel: string
|
package/src/mappers/bybit.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { upperCaseSymbols } from '../handy'
|
|
1
2
|
import { BookChange, DerivativeTicker, Exchange, Liquidation, Trade } from '../types'
|
|
2
3
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
3
4
|
|
|
@@ -14,6 +15,8 @@ export class BybitTradesMapper implements Mapper<'bybit', Trade> {
|
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
getFilters(symbols?: string[]) {
|
|
18
|
+
symbols = upperCaseSymbols(symbols)
|
|
19
|
+
|
|
17
20
|
return [
|
|
18
21
|
{
|
|
19
22
|
channel: 'trade',
|
|
@@ -57,6 +60,8 @@ export class BybitBookChangeMapper implements Mapper<'bybit', BookChange> {
|
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
getFilters(symbols?: string[]) {
|
|
63
|
+
symbols = upperCaseSymbols(symbols)
|
|
64
|
+
|
|
60
65
|
if (this._canUseBook200Channel) {
|
|
61
66
|
return [
|
|
62
67
|
{
|
|
@@ -117,6 +122,8 @@ export class BybitDerivativeTickerMapper implements Mapper<'bybit', DerivativeTi
|
|
|
117
122
|
}
|
|
118
123
|
|
|
119
124
|
getFilters(symbols?: string[]) {
|
|
125
|
+
symbols = upperCaseSymbols(symbols)
|
|
126
|
+
|
|
120
127
|
return [
|
|
121
128
|
{
|
|
122
129
|
channel: 'instrument_info',
|
|
@@ -190,6 +197,8 @@ export class BybitLiquidationsMapper implements Mapper<'bybit', Liquidation> {
|
|
|
190
197
|
}
|
|
191
198
|
|
|
192
199
|
getFilters(symbols?: string[]) {
|
|
200
|
+
symbols = upperCaseSymbols(symbols)
|
|
201
|
+
|
|
193
202
|
return [
|
|
194
203
|
{
|
|
195
204
|
channel: 'liquidation',
|
package/src/mappers/coinbase.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { parseμs, upperCaseSymbols } from '../handy'
|
|
1
2
|
import { BookChange, BookPriceLevel, BookTicker, Trade } from '../types'
|
|
2
3
|
import { Mapper } from './mapper'
|
|
3
|
-
import { parseμs } from '../handy'
|
|
4
4
|
|
|
5
5
|
// https://docs.pro.coinbase.com/#websocket-feed
|
|
6
6
|
|
|
@@ -10,6 +10,8 @@ export const coinbaseTradesMapper: Mapper<'coinbase', Trade> = {
|
|
|
10
10
|
},
|
|
11
11
|
|
|
12
12
|
getFilters(symbols?: string[]) {
|
|
13
|
+
symbols = upperCaseSymbols(symbols)
|
|
14
|
+
|
|
13
15
|
return [
|
|
14
16
|
{
|
|
15
17
|
channel: 'match',
|
|
@@ -69,6 +71,8 @@ export class CoinbaseBookChangMapper implements Mapper<'coinbase', BookChange> {
|
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
getFilters(symbols?: string[]) {
|
|
74
|
+
symbols = upperCaseSymbols(symbols)
|
|
75
|
+
|
|
72
76
|
return [
|
|
73
77
|
{
|
|
74
78
|
channel: 'snapshot',
|
|
@@ -128,6 +132,8 @@ export const coinbaseBookTickerMapper: Mapper<'coinbase', BookTicker> = {
|
|
|
128
132
|
},
|
|
129
133
|
|
|
130
134
|
getFilters(symbols?: string[]) {
|
|
135
|
+
symbols = upperCaseSymbols(symbols)
|
|
136
|
+
|
|
131
137
|
return [
|
|
132
138
|
{
|
|
133
139
|
channel: 'ticker',
|