@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.js
CHANGED
|
@@ -693,41 +693,35 @@ var reduceOrderbook = (depth, level, data) => {
|
|
|
693
693
|
bids: bids.length < level ? bids.concat(paddingFn(level - bids.length)) : bids
|
|
694
694
|
};
|
|
695
695
|
};
|
|
696
|
-
var
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
} else
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
});
|
|
715
|
-
update.bids.forEach((element) => {
|
|
716
|
-
for (let index = 0; index < bids.length; index++) {
|
|
717
|
-
if (element[1] === 0) {
|
|
718
|
-
if (element[0] === bids[index][0]) {
|
|
719
|
-
bids.splice(index, 1);
|
|
720
|
-
break;
|
|
696
|
+
var mergeItems = (data, update) => {
|
|
697
|
+
if (data.length === 0)
|
|
698
|
+
return update;
|
|
699
|
+
data = data.filter(([price]) => !isNaN(price));
|
|
700
|
+
while (update.length > 0) {
|
|
701
|
+
const item = update.shift();
|
|
702
|
+
if (item) {
|
|
703
|
+
const [price, quantity] = item;
|
|
704
|
+
const index = data.findIndex(([p], index2) => p === price);
|
|
705
|
+
if (index === -1) {
|
|
706
|
+
if (quantity === 0)
|
|
707
|
+
continue;
|
|
708
|
+
data.push(item);
|
|
709
|
+
} else {
|
|
710
|
+
if (quantity === 0) {
|
|
711
|
+
data.splice(index, 1);
|
|
712
|
+
} else {
|
|
713
|
+
data[index] = item;
|
|
721
714
|
}
|
|
722
|
-
} else if (element[0] === bids[index][0]) {
|
|
723
|
-
bids[index] = element;
|
|
724
|
-
break;
|
|
725
|
-
} else if (element[0] > bids[index][0]) {
|
|
726
|
-
bids.splice(index, 0, element);
|
|
727
|
-
break;
|
|
728
715
|
}
|
|
729
716
|
}
|
|
730
|
-
}
|
|
717
|
+
}
|
|
718
|
+
return data;
|
|
719
|
+
};
|
|
720
|
+
var mergeOrderbook = (data, update) => {
|
|
721
|
+
let asks = [...data.asks];
|
|
722
|
+
let bids = [...data.bids];
|
|
723
|
+
asks = mergeItems(asks, update.asks).sort(asksSortFn);
|
|
724
|
+
bids = mergeItems(bids, update.bids).sort(bidsSortFn);
|
|
731
725
|
return {
|
|
732
726
|
asks,
|
|
733
727
|
bids
|
|
@@ -771,14 +765,12 @@ var useOrderbookStream = (symbol, initial = INIT_DATA, options) => {
|
|
|
771
765
|
if (ignore)
|
|
772
766
|
return;
|
|
773
767
|
if (!!message) {
|
|
774
|
-
let bids = message.bids.sort(bidsSortFn);
|
|
775
|
-
bids = bids.filter((item) => !isNaN(item[0]));
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
asks = asks.filter((item) => !isNaN(item[0]));
|
|
779
|
-
asks = asks.filter((item) => item[1] > 0);
|
|
768
|
+
let bids = [...message.bids.sort(bidsSortFn)];
|
|
769
|
+
bids = bids.filter((item) => !isNaN(item[0]) && item[1] > 0);
|
|
770
|
+
let asks = [...message.asks.sort(asksSortFn)];
|
|
771
|
+
asks = asks.filter((item) => !isNaN(item[0]) && item[1] > 0);
|
|
780
772
|
setRequestData({ bids, asks });
|
|
781
|
-
setData({ bids, asks });
|
|
773
|
+
setData({ bids: [...bids], asks: [...asks] });
|
|
782
774
|
}
|
|
783
775
|
setIsLoading(false);
|
|
784
776
|
}
|