chore: add gateway scaffold

This commit is contained in:
Alexa Amundson
2025-11-24 01:26:02 -06:00
parent 0090086504
commit 0a61020d5d
21 changed files with 8739 additions and 1 deletions

32
src/plugins/graphql.ts Normal file
View File

@@ -0,0 +1,32 @@
import { FastifyInstance } from 'fastify';
import fp from 'fastify-plugin';
import mercurius from 'mercurius';
const typeDefs = /* GraphQL */ `
type Query {
_ping: String
}
# TODO(gateway-next): Extend schema with federation v2 directives and compose remote schemas.
`;
const resolvers = {
Query: {
_ping: async () => 'pong',
},
};
async function graphqlPlugin(fastify: FastifyInstance) {
fastify.register(mercurius, {
schema: typeDefs,
resolvers,
graphiql: process.env.NODE_ENV !== 'production',
context: () => ({
// TODO(gateway-next): Inject authenticated user + stitched service clients.
}),
});
}
export default fp(graphqlPlugin, {
name: 'graphql-plugin',
});