feat: refactor database client types and update related logic across game engine modules

This commit is contained in:
2025-12-30 12:40:55 +00:00
parent 4de688d642
commit cc78319948
10 changed files with 560 additions and 117 deletions
+22 -2
View File
@@ -6,11 +6,31 @@ import { seedScenarioToDatabase } from '../src/scenario/scenarioSeeder.js';
const scenarioId = 1010;
const databaseUrl = await resolveDatabaseUrl();
type ScenarioSeederPrismaClient = {
$queryRawUnsafe(query: string): Promise<unknown>;
nation: {
count(): Promise<number>;
};
city: {
count(): Promise<number>;
};
general: {
count(): Promise<number>;
};
diplomacy: {
count(): Promise<number>;
findFirst(args: {
where: { srcNationId: number; destNationId: number };
}): Promise<{ stateCode: string } | null>;
};
};
const canConnectToDatabase = async (url: string): Promise<boolean> => {
const connector = createPostgresConnector({ url });
try {
await connector.connect();
await connector.prisma.$queryRawUnsafe('SELECT 1');
const prisma = connector.prisma as ScenarioSeederPrismaClient;
await prisma.$queryRawUnsafe('SELECT 1');
return true;
} catch {
return false;
@@ -32,7 +52,7 @@ describeDb('scenario database seed', () => {
const connector = createPostgresConnector({ url: databaseUrl });
await connector.connect();
try {
const prisma = connector.prisma;
const prisma = connector.prisma as ScenarioSeederPrismaClient;
const [
nationCount,
cityCount,