web: fix hang when candles fetched are slightly diff than before

This commit is contained in:
nym21
2025-06-17 22:30:11 +02:00
parent 49d66a133e
commit 9b275ecdae
3 changed files with 8 additions and 92 deletions
@@ -948,7 +948,7 @@ impl Vecs {
path,
&format!("cumulative_{}", suffix("net_realized_profit_and_loss_30d_change")),
true,
version + VERSION + Version::TWO,
version + VERSION + Version::new(3),
format,
StorableVecGeneatorOptions::default().add_last()
)
@@ -959,7 +959,7 @@ impl Vecs {
path,
&format!("cumulative_{}", suffix("net_realized_profit_and_loss_30d_change_relative_to_realized_cap")),
true,
version + VERSION + Version::TWO,
version + VERSION + Version::new(3),
format,
StorableVecGeneatorOptions::default().add_last()
)
@@ -970,7 +970,7 @@ impl Vecs {
path,
&format!("cumulative_{}", suffix("net_realized_profit_and_loss_30d_change_relative_to_market_cap")),
true,
version + VERSION + Version::TWO,
version + VERSION + Version::new(3),
format,
StorableVecGeneatorOptions::default().add_last()
)
@@ -480,96 +480,12 @@ function createChartElement({
});
}
});
} else if (data.length) {
let i = 0;
// console.log(seriesData);
const first = seriesData[0];
} else {
const last = seriesData.at(-1);
if (!last) throw Error("Unreachable");
while (data[i].time < first.time) {
iseries.update(data[i], true);
i++;
}
// console.log(i);
let j = 0;
while (i < data.length) {
const dataI = data[i];
const iTime = dataI.time;
if (iTime > last.time) {
console.log(0, {
vecId,
dataI,
i,
data,
});
iseries.update(dataI);
i++;
} else {
const seriesDataJ = /** @type {typeof dataI} */ (
seriesData[j]
);
const jTime = seriesDataJ.time;
if (iTime === jTime) {
const historicalUpdate = iTime < last.time;
if ("value" in dataI) {
if (
// @ts-ignore
dataI.value !== seriesDataJ.value &&
// @ts-ignore
(!isNaN(dataI.value) || !isNaN(seriesDataJ.value))
) {
console.log(1, {
vecId,
dataI,
i,
data,
j,
seriesDataJ,
seriesData,
});
iseries.update(dataI, historicalUpdate);
}
} else if (
// @ts-ignore
dataI.open !== seriesDataJ.open ||
// @ts-ignore
dataI.high !== seriesDataJ.high ||
// @ts-ignore
dataI.low !== seriesDataJ.low ||
// @ts-ignore
dataI.close !== seriesDataJ.close
) {
console.log(2, {
vecId,
dataI,
i,
data,
j,
seriesDataJ,
seriesData,
});
iseries.update(dataI, historicalUpdate);
}
i++;
j++;
} else if (iTime < jTime) {
console.log(3, {
vecId,
dataI,
i,
data,
j,
seriesDataJ,
seriesData,
});
iseries.update(dataI, true);
i++;
} else if (iTime > jTime) {
j++;
} else {
throw Error("Unreachable");
}
for (let i = 0; i < data.length; i++) {
if (data[i].time >= last.time) {
iseries.update(data[i]);
}
}
}
+1 -1
View File
@@ -2,7 +2,7 @@
// File auto-generated, any modifications will be overwritten
//
export const VERSION = "v0.0.63";
export const VERSION = "v0.0.64";
/** @typedef {0} DateIndex */
/** @typedef {1} DecadeIndex */