@orderly.network/hooks 0.0.92 → 0.0.93
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/index.js +31 -39
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +31 -39
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
package/dist/index.mjs
CHANGED
|
@@ -684,41 +684,35 @@ var reduceOrderbook = (depth, level, data) => {
|
|
|
684
684
|
bids: bids.length < level ? bids.concat(paddingFn(level - bids.length)) : bids
|
|
685
685
|
};
|
|
686
686
|
};
|
|
687
|
-
var
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
} else
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
});
|
|
706
|
-
update.bids.forEach((element) => {
|
|
707
|
-
for (let index = 0; index < bids.length; index++) {
|
|
708
|
-
if (element[1] === 0) {
|
|
709
|
-
if (element[0] === bids[index][0]) {
|
|
710
|
-
bids.splice(index, 1);
|
|
711
|
-
break;
|
|
687
|
+
var mergeItems = (data, update) => {
|
|
688
|
+
if (data.length === 0)
|
|
689
|
+
return update;
|
|
690
|
+
data = data.filter(([price]) => !isNaN(price));
|
|
691
|
+
while (update.length > 0) {
|
|
692
|
+
const item = update.shift();
|
|
693
|
+
if (item) {
|
|
694
|
+
const [price, quantity] = item;
|
|
695
|
+
const index = data.findIndex(([p], index2) => p === price);
|
|
696
|
+
if (index === -1) {
|
|
697
|
+
if (quantity === 0)
|
|
698
|
+
continue;
|
|
699
|
+
data.push(item);
|
|
700
|
+
} else {
|
|
701
|
+
if (quantity === 0) {
|
|
702
|
+
data.splice(index, 1);
|
|
703
|
+
} else {
|
|
704
|
+
data[index] = item;
|
|
712
705
|
}
|
|
713
|
-
} else if (element[0] === bids[index][0]) {
|
|
714
|
-
bids[index] = element;
|
|
715
|
-
break;
|
|
716
|
-
} else if (element[0] > bids[index][0]) {
|
|
717
|
-
bids.splice(index, 0, element);
|
|
718
|
-
break;
|
|
719
706
|
}
|
|
720
707
|
}
|
|
721
|
-
}
|
|
708
|
+
}
|
|
709
|
+
return data;
|
|
710
|
+
};
|
|
711
|
+
var mergeOrderbook = (data, update) => {
|
|
712
|
+
let asks = [...data.asks];
|
|
713
|
+
let bids = [...data.bids];
|
|
714
|
+
asks = mergeItems(asks, update.asks).sort(asksSortFn);
|
|
715
|
+
bids = mergeItems(bids, update.bids).sort(bidsSortFn);
|
|
722
716
|
return {
|
|
723
717
|
asks,
|
|
724
718
|
bids
|
|
@@ -762,14 +756,12 @@ var useOrderbookStream = (symbol, initial = INIT_DATA, options) => {
|
|
|
762
756
|
if (ignore)
|
|
763
757
|
return;
|
|
764
758
|
if (!!message) {
|
|
765
|
-
let bids = message.bids.sort(bidsSortFn);
|
|
766
|
-
bids = bids.filter((item) => !isNaN(item[0]));
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
asks = asks.filter((item) => !isNaN(item[0]));
|
|
770
|
-
asks = asks.filter((item) => item[1] > 0);
|
|
759
|
+
let bids = [...message.bids.sort(bidsSortFn)];
|
|
760
|
+
bids = bids.filter((item) => !isNaN(item[0]) && item[1] > 0);
|
|
761
|
+
let asks = [...message.asks.sort(asksSortFn)];
|
|
762
|
+
asks = asks.filter((item) => !isNaN(item[0]) && item[1] > 0);
|
|
771
763
|
setRequestData({ bids, asks });
|
|
772
|
-
setData({ bids, asks });
|
|
764
|
+
setData({ bids: [...bids], asks: [...asks] });
|
|
773
765
|
}
|
|
774
766
|
setIsLoading(false);
|
|
775
767
|
}
|