GraphQL Yoga

Fully-featured GraphQL Server with focus on easy setup, performance and great developer experience.

Jamie Barton

Published on 10 Jan 2022 by Jamie Barton

Notes

import { createServer } from "graphql-yoga";
import { useGraphQlJit } from "@envelop/graphql-jit";
import fetch from "node-fetch";
const typeDefs = /* GraphQL */ `
type Query {
hello: String!
}
`;
const resolvers = {
Query: {
hello: async () =>
await fetch("http://localhost:1234/helloworld").then((res) => res.text()),
},
};
const server = createServer({
typeDefs,
resolvers,
plugins: [useGraphQlJit()],
maskedErrors: true,
});
server.start(() => console.log("Server is running on localhost:4000"));
import { createServer, createPubSub } from "graphql-yoga";
const pubSub = createPubSub();
const typeDefs = /* GraphQL */ `
type Query {
hello: String!
}
type Mutation {
speak(word: String!): String!
}
type Subscription {
speaking: String!
}
`;
const resolvers = {
Query: {
hello: () => "World!",
},
Mutation: {
speak: (_, { word }) => {
pubSub.publish("speak", word);
return word;
},
},
Subscription: {
speaking: {
subscribe: () => pubSub.subscribe("speak"),
resolve: (payload) => payload,
},
},
};