( ticker: string, benchmarkMap: Record<string, string>, defaultBenchmark = "SPY", )
| 16 | |
| 17 | /** Pick the benchmark for a ticker by suffix (default SPY). */ |
| 18 | export function resolveBenchmark( |
| 19 | ticker: string, |
| 20 | benchmarkMap: Record<string, string>, |
| 21 | defaultBenchmark = "SPY", |
| 22 | ): string { |
| 23 | const t = ticker.toUpperCase(); |
| 24 | // Longest matching suffix wins (e.g. ".NS" before ""). |
| 25 | const suffixes = Object.keys(benchmarkMap) |
| 26 | .filter((s) => s === "" || t.endsWith(s.toUpperCase())) |
| 27 | .sort((a, b) => b.length - a.length); |
| 28 | return suffixes.length ? benchmarkMap[suffixes[0]!] ?? defaultBenchmark : defaultBenchmark; |
| 29 | } |
| 30 | |
| 31 | interface Series { |
| 32 | date: string; // YYYY-MM-DD |
no outgoing calls
no test coverage detected