import { GraphQLResolveInfo } from "graphql"; export type Maybe = T | null; export type RequireFields = { [X in Exclude]?: T[X]; } & { [P in K]-?: NonNullable }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: string; String: string; Boolean: boolean; Int: number; Float: number; }; export type Mutation = { __typename?: "Mutation"; createTodo: Todo; updateTodo?: Maybe; destroyTodo?: Maybe; }; export type MutationCreateTodoArgs = { name: Scalars["String"]; }; export type MutationUpdateTodoArgs = { id: Scalars["Int"]; name?: Maybe; complete?: Maybe; }; export type MutationDestroyTodoArgs = { id: Scalars["Int"]; }; export type Query = { __typename?: "Query"; todos: Array; }; export type Todo = { __typename?: "Todo"; id: Scalars["Int"]; name: Scalars["String"]; complete: Scalars["Boolean"]; }; export type WithIndex = TObject & Record; export type ResolversObject = WithIndex; export type ResolverTypeWrapper = Promise | T; export type LegacyStitchingResolver = { fragment: string; resolve: ResolverFn; }; export type NewStitchingResolver = { selectionSet: string; resolve: ResolverFn; }; export type StitchingResolver = | LegacyStitchingResolver | NewStitchingResolver; export type Resolver = | ResolverFn | StitchingResolver; export type ResolverFn = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo ) => Promise | TResult; export type SubscriptionSubscribeFn = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo ) => AsyncIterator | Promise>; export type SubscriptionResolveFn = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo ) => TResult | Promise; export interface SubscriptionSubscriberObject< TResult, TKey extends string, TParent, TContext, TArgs > { subscribe: SubscriptionSubscribeFn< { [key in TKey]: TResult }, TParent, TContext, TArgs >; resolve?: SubscriptionResolveFn< TResult, { [key in TKey]: TResult }, TContext, TArgs >; } export interface SubscriptionResolverObject { subscribe: SubscriptionSubscribeFn; resolve: SubscriptionResolveFn; } export type SubscriptionObject< TResult, TKey extends string, TParent, TContext, TArgs > = | SubscriptionSubscriberObject | SubscriptionResolverObject; export type SubscriptionResolver< TResult, TKey extends string, TParent = {}, TContext = {}, TArgs = {} > = | (( ...args: any[] ) => SubscriptionObject) | SubscriptionObject; export type TypeResolveFn = ( parent: TParent, context: TContext, info: GraphQLResolveInfo ) => Maybe | Promise>; export type IsTypeOfResolverFn = ( obj: T, info: GraphQLResolveInfo ) => boolean | Promise; export type NextResolverFn = () => Promise; export type DirectiveResolverFn< TResult = {}, TParent = {}, TContext = {}, TArgs = {} > = ( next: NextResolverFn, parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo ) => TResult | Promise; /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = ResolversObject<{ Query: ResolverTypeWrapper<{}>; Todo: ResolverTypeWrapper; Int: ResolverTypeWrapper; String: ResolverTypeWrapper; Boolean: ResolverTypeWrapper; Mutation: ResolverTypeWrapper<{}>; }>; /** Mapping between all available schema types and the resolvers parents */ export type ResolversParentTypes = ResolversObject<{ Query: {}; Todo: Todo; Int: Scalars["Int"]; String: Scalars["String"]; Boolean: Scalars["Boolean"]; Mutation: {}; }>; export type MutationResolvers< ContextType = any, ParentType extends ResolversParentTypes["Mutation"] = ResolversParentTypes["Mutation"] > = ResolversObject<{ createTodo?: Resolver< ResolversTypes["Todo"], ParentType, ContextType, RequireFields >; updateTodo?: Resolver< Maybe, ParentType, ContextType, RequireFields >; destroyTodo?: Resolver< Maybe, ParentType, ContextType, RequireFields >; }>; export type QueryResolvers< ContextType = any, ParentType extends ResolversParentTypes["Query"] = ResolversParentTypes["Query"] > = ResolversObject<{ todos?: Resolver, ParentType, ContextType>; }>; export type TodoResolvers< ContextType = any, ParentType extends ResolversParentTypes["Todo"] = ResolversParentTypes["Todo"] > = ResolversObject<{ id?: Resolver; name?: Resolver; complete?: Resolver; __isTypeOf?: IsTypeOfResolverFn; }>; export type Resolvers = ResolversObject<{ Mutation?: MutationResolvers; Query?: QueryResolvers; Todo?: TodoResolvers; }>; /** * @deprecated * Use "Resolvers" root object instead. If you wish to get "IResolvers", add "typesPrefix: I" to your config. */ export type IResolvers = Resolvers;