GraphQL Resolvers
Implementing resolver functions
Basic Resolver
const resolvers = {
Query: {
user: (parent, args, context, info) => {
return getUserById(args.id);
}
}
}; # query resolver
Resolver Arguments
parent # result from parent resolver
args # query arguments
context # shared context (auth, database, etc.)
info # query info and schema
Mutation Resolver
const resolvers = {
Mutation: {
createUser: (parent, args, context) => {
const user = new User(args);
return user.save();
}
}
}; # mutation resolver
Field Resolver
const resolvers = {
User: {
posts: (parent) => {
return getPostsByUserId(parent.id);
}
}
}; # resolve nested field
Async Resolver
const resolvers = {
Query: {
user: async (parent, args) => {
const user = await User.findById(args.id);
return user;
}
}
}; # async/await resolver
Context Usage
const resolvers = {
Query: {
me: (parent, args, context) => {
if (!context.user) {
throw new Error('Not authenticated');
}
return context.user;
}
}
}; # use context for auth