ignore missing values

pull/239/head
Valentin Zickner 3 years ago committed by Thomas
parent 8e4ee7feea
commit cbe079ae66

@ -169,7 +169,10 @@ export class PortfolioCalculator {
) {
j++;
}
timelinePeriodPromises.push(this.getTimePeriodForDate(j, currentDate));
const timePeriodForDate = this.getTimePeriodForDate(j, currentDate);
if (timePeriodForDate != null) {
timelinePeriodPromises.push(timePeriodForDate);
}
}
console.timeEnd('calculate-timeline-calculations');
@ -185,7 +188,10 @@ export class PortfolioCalculator {
return timelinePeriods;
}
private async getTimePeriodForDate(j: number, currentDate: Date) {
private async getTimePeriodForDate(
j: number,
currentDate: Date
): Promise<TimelinePeriod> {
let investment: Big = new Big(0);
const promises = [];
if (j >= 0) {
@ -204,10 +210,19 @@ export class PortfolioCalculator {
}
}
const value = (await Promise.all(promises)).reduce(
(a, b) => a.add(b),
new Big(0)
);
const result = await Promise.all(promises).catch((e) => {
console.error(
`failed to fetch info for date ${currentDate} with exception`,
e
);
return null;
});
if (result == null) {
return null;
}
const value = result.reduce((a, b) => a.add(b), new Big(0));
return {
date: format(currentDate, DATE_FORMAT),
grossPerformance: value.minus(investment),

@ -26,7 +26,6 @@ import Big from 'big.js';
import {
add,
addMonths,
endOfToday,
format,
getDate,
getMonth,
@ -43,7 +42,6 @@ import {
subDays,
subYears
} from 'date-fns';
import { port } from 'envalid';
import { isEmpty } from 'lodash';
import * as roundTo from 'round-to';
@ -204,11 +202,13 @@ export class PortfolioService {
format(new Date(), dateFormat)
);
return timeline.map((timelineItem) => ({
date: timelineItem.date,
value: timelineItem.grossPerformance,
marketPrice: timelineItem.value
}));
return timeline
.filter((timelineItem) => timelineItem !== null)
.map((timelineItem) => ({
date: timelineItem.date,
value: timelineItem.grossPerformance,
marketPrice: timelineItem.value
}));
}
private getStartDate(aDateRange: DateRange, portfolioStart: Date) {

Loading…
Cancel
Save