public GraphQlQueryCompiler(IGraphQLQueryExecutor queryExecutor, IGraphQLQueryBuilder queryBuilder)
 {
     _queryExecutor = queryExecutor ?? throw new ArgumentNullException(nameof(queryExecutor));
     _queryBuilder  = queryBuilder ?? throw new ArgumentNullException(nameof(queryBuilder));
 }
 public GraphQLQueryable(IGraphQLQueryExecutor queryExecutor)
     : this(queryExecutor, new GraphQLQueryBuilder())
 {
 }
 public GraphQLQueryable(IGraphQLQueryExecutor queryExecutor, IGraphQLQueryBuilder queryBuilder)
     : this(new GraphQLQueryProvider(new GraphQlQueryCompiler(queryExecutor, queryBuilder)))
 {
 }
 /// <summary>
 /// Initilizes a GraphQL client which communicates with the specified GraphQL query executor
 /// </summary>
 /// <param name="queryBuilder">The query builder used to generate the query</param>
 /// <param name="queryExecutor">The queryExecutor used to execute the GraphQL query</param>
 /// <exception cref="ArgumentNullException"></exception>
 public GraphQLClient(IGraphQLQueryBuilder queryBuilder, IGraphQLQueryExecutor queryExecutor)
     : this(new GraphQlQueryCompiler(queryExecutor, queryBuilder))
 {
 }