Files
sexy/packages/backend/src/graphql/builder.ts
Sebastian Krüger 4102f9990c
All checks were successful
Build and Push Docker Image to Gitea / build-and-push (push) Successful in 4m23s
fix: switch backend to CommonJS, generate Drizzle migrations, add migrate script
- 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>
2026-03-04 18:42:58 +01:00

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({});