text: import HttpError from '@wasp/core/HttpError.js'
  
  export const getUser = async ({ username }, context) => {
    // TODO: Do some error handling?
    const user = await context.entities.User.findUnique({
      where: { username },
      // TODO: Tricky, if you forget this you could return unwanted fields
      //   like hashed password!
      //   It would be cool if we had some protection against making this mistake easily.
      select: {
        ...userPublicSelection,
        followedBy: { select: { id: true } }
      }
    })
    if (!user) throw new HttpError(404, 'No user with username ' + username)
  
    userSetFollowedFields(user, context.user)
  
    return user
  }
  
  export const userPublicSelection = {
    id: true,
    username: true,
    email: true,
    bio: true,
    profilePictureUrl: true
  }
  
  const userSetFollowedFields = (user, me) => {
    user.following = me && user.followedBy.find(({ id }) => id === me.id)
    user.followersCount = user.followedBy.length
    delete user.followedBy
  }
  