fix(): null-proof/nan-proof

This commit is contained in:
Gergő Móricz 2025-04-19 12:35:55 -07:00
parent 0e027fe430
commit df305c2a97

View File

@ -75,6 +75,8 @@ export class CostLimitExceededError extends Error {
}
}
const nanProof = (n: number | null | undefined) => isNaN(n ?? 0) ? 0 : (n ?? 0);
export class CostTracking {
calls: {
type: "smartScrape" | "other",
@ -109,10 +111,10 @@ export class CostTracking {
calls: this.calls,
smartScrapeCallCount: this.calls.filter(c => c.type === "smartScrape").length,
smartScrapeCost: this.calls.filter(c => c.type === "smartScrape").reduce((acc, c) => acc + c.cost, 0),
smartScrapeCost: this.calls.filter(c => c.type === "smartScrape").reduce((acc, c) => acc + nanProof(c.cost), 0),
otherCallCount: this.calls.filter(c => c.type === "other").length,
otherCost: this.calls.filter(c => c.type === "other").reduce((acc, c) => acc + c.cost, 0),
totalCost: this.calls.reduce((acc, c) => acc + c.cost, 0),
otherCost: this.calls.filter(c => c.type === "other").reduce((acc, c) => acc + nanProof(c.cost), 0),
totalCost: this.calls.reduce((acc, c) => acc + nanProof(c.cost), 0),
}
}
}