This commit is contained in:
rafaelmmiller 2025-04-19 12:53:43 -07:00
commit 1afc6258bd

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 { export class CostTracking {
calls: { calls: {
type: "smartScrape" | "other", type: "smartScrape" | "other",
@ -109,10 +111,10 @@ export class CostTracking {
calls: this.calls, calls: this.calls,
smartScrapeCallCount: this.calls.filter(c => c.type === "smartScrape").length, 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, otherCallCount: this.calls.filter(c => c.type === "other").length,
otherCost: this.calls.filter(c => c.type === "other").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 + c.cost, 0), totalCost: this.calls.reduce((acc, c) => acc + nanProof(c.cost), 0),
} }
} }
} }