Graphql_async.Schema
GraphQL schema with Async support
include Graphql_intf.Schema
with type 'a Io.t = 'a Async_kernel.Deferred.t
and type 'a Io.Stream.t = 'a Async_kernel.Pipe.Reader.t
and type field_error = string
module Io :
Graphql_intf.IO
with type 'a t = 'a Async_kernel.Deferred.t
with type 'a Stream.t = 'a Async_kernel.Pipe.Reader.t
module StringMap : sig ... end
val schema :
?mutation_name:string ->
?mutations:( 'ctx, unit ) field list ->
?subscription_name:string ->
?subscriptions:'ctx subscription_field list ->
?query_name:string ->
( 'ctx, unit ) field list ->
'ctx schema
val enum_value :
?doc:string ->
?deprecated:deprecated ->
string ->
value:'a ->
'a enum_value
module Arg : sig ... end
type variable_map = Graphql_parser.const_value StringMap.t
type fragment_map = Graphql_parser.fragment StringMap.t
type 'ctx resolve_info = {
ctx : 'ctx; |
field : Graphql_parser.field; |
fragments : fragment_map; |
variables : variable_map; |
}
val field :
?doc:string ->
?deprecated:deprecated ->
string ->
typ:( 'ctx, 'a ) typ ->
args:( 'a, 'b ) Arg.arg_list ->
resolve:( 'ctx resolve_info -> 'src -> 'b ) ->
( 'ctx, 'src ) field
val io_field :
?doc:string ->
?deprecated:deprecated ->
string ->
typ:( 'ctx, 'a ) typ ->
args:( ( 'a, field_error ) Stdlib.result Io.t, 'b ) Arg.arg_list ->
resolve:( 'ctx resolve_info -> 'src -> 'b ) ->
( 'ctx, 'src ) field
val subscription_field :
?doc:string ->
?deprecated:deprecated ->
string ->
typ:( 'ctx, 'out ) typ ->
args:
( ( 'out Io.Stream.t, field_error ) Stdlib.result Io.t, 'args )
Arg.arg_list ->
resolve:( 'ctx resolve_info -> 'args ) ->
'ctx subscription_field
val enum :
?doc:string ->
string ->
values:'a enum_value list ->
( 'ctx, 'a option ) typ
val scalar :
?doc:string ->
string ->
coerce:( 'a -> Yojson.Basic.t ) ->
( 'ctx, 'a option ) typ
type ('ctx, 'a) abstract_typ = ( 'ctx, ( 'ctx, 'a ) abstract_value option ) typ
val union : ?doc:string -> string -> ( 'ctx, 'a ) abstract_typ
val abstract_field :
?doc:string ->
?deprecated:deprecated ->
string ->
typ:( _, 'a ) typ ->
args:( 'a, _ ) Arg.arg_list ->
abstract_field
val interface :
?doc:string ->
string ->
fields:( ( 'ctx, 'a ) abstract_typ -> abstract_field list ) ->
( 'ctx, 'a ) abstract_typ
val add_type :
( 'ctx, 'a ) abstract_typ ->
( 'ctx, 'src option ) typ ->
'src ->
( 'ctx, 'a ) abstract_value
type 'a fixpoint = {
obj : 'ctx 'src 'typ 'b. ?doc:string ->
string ->
fields:( 'a -> ( 'ctx, 'src ) field list ) ->
( 'ctx, 'src option ) typ; |
interface : 'ctx 'src. ?doc:string ->
string ->
fields:( 'a -> abstract_field list ) ->
( 'ctx, 'src ) abstract_typ; |
}
val fix : ( 'a fixpoint -> 'a ) -> 'a
val int : ( 'ctx, int option ) typ
val string : ( 'ctx, string option ) typ
val guid : ( 'ctx, string option ) typ
val bool : ( 'ctx, bool option ) typ
val float : ( 'ctx, float option ) typ
type variables = (string * Graphql_parser.const_value) list
val execute :
'ctx schema ->
'ctx ->
?variables:variables ->
?operation_name:string ->
Graphql_parser.document ->
[ `Response of Yojson.Basic.t
| `Stream of Yojson.Basic.t response Io.Stream.t ]
response
Io.t
execute schema ctx variables doc
evaluates the doc
against schema
with the given context ctx
and variables
.