백테스트 전략이름, 이동평균선 그래프 오류 수정
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* 전략 ID → 이름 해석 (목록에 없거나 삭제된 전략 포함)
|
||||
*/
|
||||
import { loadStrategyForNotification, type StrategyDto } from './backendApi';
|
||||
|
||||
/** 전략 목록 + 누락 ID별 단건 조회로 이름 맵 보강 */
|
||||
export async function enrichStrategyNameMap(
|
||||
base: Record<number, string>,
|
||||
ids: Iterable<number | null | undefined>,
|
||||
): Promise<Record<number, string>> {
|
||||
const out = { ...base };
|
||||
const missing = [...new Set(
|
||||
[...ids]
|
||||
.map(id => (id != null && id > 0 ? Math.trunc(id) : null))
|
||||
.filter((id): id is number => id != null && !out[id]),
|
||||
)];
|
||||
if (!missing.length) return out;
|
||||
|
||||
await Promise.all(missing.map(async id => {
|
||||
try {
|
||||
const s = await loadStrategyForNotification(id);
|
||||
if (s?.name?.trim()) out[id] = s.name.trim();
|
||||
} catch {
|
||||
/* ignore */
|
||||
}
|
||||
}));
|
||||
return out;
|
||||
}
|
||||
|
||||
export function strategyNamesFromList(list: StrategyDto[]): Record<number, string> {
|
||||
const out: Record<number, string> = {};
|
||||
for (const s of list) {
|
||||
if (s.id != null && s.id > 0 && s.name?.trim()) {
|
||||
out[s.id] = s.name.trim();
|
||||
}
|
||||
}
|
||||
return out;
|
||||
}
|
||||
Reference in New Issue
Block a user