title: GraphQL Fields Undefined
body: <p>Starting out with a GraphQL / Node / Express / Typescript stack, I am coming across an issue where field arguments are not being passed to the resolver function. I have two queries:</p>
  
  <p>UserList: </p>
  
  <pre><code>UserList: {
          type: new GraphQLList(UserType),
          args: {
              userName: {
                  type: GraphQLString
              },
              userIsLocked: {
                  type: GraphQLBoolean
              },
              userIsConfirmed: {
                  type: GraphQLBoolean
              },
              userAwaitingPassword: {
                  type: GraphQLBoolean
              }
          },
          resolve: ((_, {fields}) =&gt; new User().where({fields}))
      }
  </code></pre>
  
  <p>And User: </p>
  
  <pre><code>User: {
      type: UserType,
      args: {
          userId: {
              type: GraphQLID
          }
      },
      resolve: ((_, {userId}) =&gt; new User().getById({userId}))
  }
  </code></pre>
  
  <p>The <code>User().where()</code> function defaults to displaying all users if no criteria is provided. However, consider the following query and results:</p>
  
  <pre><code>query All {
    UserList(userIsLocked:true){
      userId
      userName
      userIsLocked
    }
  }
  
  // Results
  {
    "data": {
      "UserList": [
        {
          "userId": "a4f1d968-52d6-4148-bf62-1e132a4defde",
          "userName": "user1",
          "userIsLocked": false
        },
        {
          "userId": "b42a1170-096a-11e9-b568-0800200c9a66",
          "userName": "administrator",
          "userIsLocked": false
        }
      ]
    }
  }
  </code></pre>
  
  <p>Obviously, userIsLocked is not being passed the fields argument on the <code>where()</code> function. However, the following works:</p>
  
  <pre><code>query Individual {
    User(userId: "a4f1d968-52d6-4148-bf62-1e132a4defde") {
      userId
      userName
      userIsLocked
    }
  }
  
  // Results
  {
    "data": {
      "User": {
        "userId": "a4f1d968-52d6-4148-bf62-1e132a4defde",
        "userName": "user1",
        "userIsLocked": false
      }
    }
  }
  </code></pre>
  
  <p>When <code>userId</code> is logged on a request to <code>getById()</code>, I see <code>{"userId":"a4f1d968-52d6-4148-bf62-1e132a4defde"}</code> in the console. But when <code>fields</code> is logged on a request to <code>where()</code>, all that shows in the console is <code>undefined</code> and my query defaults to displaying all users. I can not figure out why 2 apparently equal queries would be behaving in such different ways. I have scoured the documentation for GraphQL but all I can find are sample queries and general query structure. </p>