typescript-typenfehler behoben.. npm run lint läuft nun fehlerfrei durch.

This commit is contained in:
Codex Agent
2025-11-22 11:49:47 +01:00
parent 6c78d7e281
commit eb41cb6194
74 changed files with 469 additions and 396 deletions

View File

@@ -160,32 +160,41 @@ export async function fetchAchievements(
tasks: toNumber(personalRaw.tasks),
likes: toNumber(personalRaw.likes),
badges: Array.isArray(personalRaw.badges)
? personalRaw.badges.map((badge: any): AchievementBadge => ({
id: safeString(badge.id),
title: safeString(badge.title),
description: safeString(badge.description),
earned: Boolean(badge.earned),
progress: toNumber(badge.progress),
target: toNumber(badge.target, 1),
}))
? personalRaw.badges.map((badge): AchievementBadge => {
const record = badge as Record<string, unknown>;
return {
id: safeString(record.id),
title: safeString(record.title),
description: safeString(record.description),
earned: Boolean(record.earned),
progress: toNumber(record.progress),
target: toNumber(record.target, 1),
};
})
: [],
}
: null;
const uploadsBoard = Array.isArray(leaderboards.uploads)
? leaderboards.uploads.map((row: any): LeaderboardEntry => ({
guest: safeString(row.guest),
photos: toNumber(row.photos),
likes: toNumber(row.likes),
}))
? leaderboards.uploads.map((row): LeaderboardEntry => {
const record = row as Record<string, unknown>;
return {
guest: safeString(record.guest),
photos: toNumber(record.photos),
likes: toNumber(record.likes),
};
})
: [];
const likesBoard = Array.isArray(leaderboards.likes)
? leaderboards.likes.map((row: any): LeaderboardEntry => ({
guest: safeString(row.guest),
photos: toNumber(row.photos),
likes: toNumber(row.likes),
}))
? leaderboards.likes.map((row): LeaderboardEntry => {
const record = row as Record<string, unknown>;
return {
guest: safeString(record.guest),
photos: toNumber(record.photos),
likes: toNumber(record.likes),
};
})
: [];
const topPhotoRaw = highlights.top_photo ?? null;
@@ -210,21 +219,27 @@ export async function fetchAchievements(
: null;
const timeline = Array.isArray(highlights.timeline)
? highlights.timeline.map((row: any): TimelinePoint => ({
date: safeString(row.date),
photos: toNumber(row.photos),
guests: toNumber(row.guests),
}))
? highlights.timeline.map((row): TimelinePoint => {
const record = row as Record<string, unknown>;
return {
date: safeString(record.date),
photos: toNumber(record.photos),
guests: toNumber(record.guests),
};
})
: [];
const feed = feedRaw.map((row: any): FeedEntry => ({
photoId: toNumber(row.photo_id),
guest: safeString(row.guest),
task: row.task ?? null,
likes: toNumber(row.likes),
createdAt: safeString(row.created_at),
thumbnail: row.thumbnail ? safeString(row.thumbnail) : null,
}));
const feed = feedRaw.map((row): FeedEntry => {
const record = row as Record<string, unknown>;
return {
photoId: toNumber(record.photo_id),
guest: safeString(record.guest),
task: (record as { task?: string }).task ?? null,
likes: toNumber(record.likes),
createdAt: safeString(record.created_at),
thumbnail: record.thumbnail ? safeString(record.thumbnail) : null,
};
});
const payload: AchievementsPayload = {
summary: {