All checks were successful
Build and Push Docker Image to Gitea / build-and-push (push) Successful in 4m23s
- Remove "type": "module" and switch tsconfig to CommonJS/Node resolution to fix drizzle-kit ESM/CJS incompatibility - Strip .js extensions from all backend TypeScript imports - Fix gamification resolver: combine two .where() calls using and() - Fix index.ts: wrap top-level awaits in async main(), fix Fastify+yoga request handling via handleNodeRequestAndResponse - Generate initial Drizzle SQL migration (0000_pale_hellion.sql) for all 15 tables - Add src/scripts/migrate.ts: programmatic Drizzle migrator for production - Copy migrations folder into Docker image (Dockerfile.backend) - Add schema:migrate npm script Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
795 B
TypeScript
31 lines
795 B
TypeScript
import SchemaBuilder from "@pothos/core";
|
|
import ErrorsPlugin from "@pothos/plugin-errors";
|
|
import type { DB } from "../db/connection";
|
|
import type { SessionUser } from "../lib/auth";
|
|
import type Redis from "ioredis";
|
|
import { GraphQLDateTime, GraphQLJSON } from "graphql-scalars";
|
|
|
|
export type Context = {
|
|
db: DB;
|
|
redis: InstanceType<typeof Redis>;
|
|
currentUser: SessionUser | null;
|
|
request: Request;
|
|
reply: unknown;
|
|
};
|
|
|
|
export const builder = new SchemaBuilder<{
|
|
Context: Context;
|
|
Scalars: {
|
|
DateTime: { Input: Date; Output: Date };
|
|
JSON: { Input: unknown; Output: unknown };
|
|
};
|
|
}>({
|
|
plugins: [ErrorsPlugin],
|
|
});
|
|
|
|
builder.addScalarType("DateTime", GraphQLDateTime, {});
|
|
builder.addScalarType("JSON", GraphQLJSON, {});
|
|
|
|
builder.queryType({});
|
|
builder.mutationType({});
|