Resolvers

1/11/2025

GraphQL Resolvers

Resolvers are functions that return data for fields in your schema.

Basic Resolvers

javascript
const resolvers = {
  Query: {
    user: (parent, args, context) => {
      return users.find(u => u.id === args.id)
    },
    users: () => users
  },
  User: {
    posts: (parent) => {
      return posts.filter(p => p.authorId === parent.id)
    }
  }
}

Resolver Arguments

javascript
const resolvers = {
  Query: {
    user: (parent, args, context, info) => {
      // parent: Result from parent resolver
      // args: Arguments passed to field
      // context: Shared data (auth, db, etc)
      // info: Field-specific info
      return context.db.users.findById(args.id)
    }
  }
}

Mutation Resolvers

javascript
const resolvers = {
  Mutation: {
    createUser: async (_, { input }, { db }) => {
      const user = await db.users.create(input)
      return user
    },
    updateUser: async (_, { id, ...input }, { db }) => {
      return db.users.update(id, input)
    },
    deleteUser: async (_, { id }, { db }) => {
      await db.users.delete(id)
      return true
    }
  }
}