Files
blitzkit/packages/core/src/blitz/getAccountAchievements.ts
T

35 lines
885 B
TypeScript
Raw Normal View History

2025-10-12 15:05:58 +00:00
import { fetchBlitz } from "./fetchBlitz";
import { normalizeIds } from "./normalizeIds";
import { Region } from "./regions";
2023-10-12 13:00:33 -05:00
interface IndividualAccountAchievements {
achievements: {
[achievement: string]: number;
};
max_series: {
[achievement: string]: number;
};
}
export interface AccountAchievements {
[id: number]: IndividualAccountAchievements;
}
export async function getAccountAchievements<
Ids extends number | number[],
ReturnType = Ids extends number
? IndividualAccountAchievements
: IndividualAccountAchievements[],
>(region: Region, ids: Ids) {
2023-10-14 10:58:48 -05:00
const object = await fetchBlitz<AccountAchievements>(
2024-04-15 13:19:25 -05:00
region,
2025-10-12 15:05:58 +00:00
"account/achievements",
{ account_id: normalizeIds(ids) }
2023-10-12 13:00:33 -05:00
);
2025-10-12 15:05:58 +00:00
if (typeof ids === "number") {
2023-10-12 13:00:33 -05:00
return object[ids as number] as ReturnType;
} else {
return ids.map((id) => object[id]) as ReturnType;
}
}