This commit is contained in:
2025-12-12 01:11:36 +01:00
parent ec3ddc3a5c
commit 6a88fe93ab
125 changed files with 1513 additions and 803 deletions

View File

@@ -47,7 +47,11 @@ export const POINTS_TABLE: Record<number, number> = {
};
export function pickOne<T>(items: readonly T[]): T {
return items[Math.floor(faker.number.int({ min: 0, max: items.length - 1 }))];
if (items.length === 0) {
throw new Error('pickOne: empty items array');
}
const index = faker.number.int({ min: 0, max: items.length - 1 });
return items[index]!;
}
export function createDrivers(count: number): Driver[] {
@@ -136,18 +140,31 @@ export function createLeagues(ownerIds: string[]): League[] {
websiteUrl: 'https://virtual-touring.example.com',
}
: undefined;
leagues.push(
League.create({
id,
name,
description: faker.lorem.sentence(),
ownerId,
settings,
createdAt: faker.date.past(),
socialLinks,
}),
);
if (socialLinks) {
leagues.push(
League.create({
id,
name,
description: faker.lorem.sentence(),
ownerId,
settings,
createdAt: faker.date.past(),
socialLinks,
}),
);
} else {
leagues.push(
League.create({
id,
name,
description: faker.lorem.sentence(),
ownerId,
settings,
createdAt: faker.date.past(),
}),
);
}
}
return leagues;
@@ -204,11 +221,16 @@ export function createMemberships(
? pickOne(leagueTeams)
: undefined;
memberships.push({
const membership: RacingMembership = {
driverId: driver.id,
leagueId: league.id,
teamId: team?.id,
});
};
if (team) {
membership.teamId = team.id;
}
memberships.push(membership);
});
});
@@ -354,6 +376,7 @@ export function createFriendships(drivers: Driver[]): Friendship[] {
for (let offset = 1; offset <= friendCount; offset++) {
const friendIndex = (index + offset) % drivers.length;
const friend = drivers[friendIndex];
if (!friend) continue;
if (friend.id === driver.id) continue;
friendships.push({