import { GraphQLResolveInfo } from 'graphql'; import { GraphQLClient } from 'graphql-request'; import { print } from 'graphql'; import gql from 'graphql-tag'; export type Maybe = T | null; export type Exact = { [K in keyof T]: T[K] }; 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 Pizza = { __typename?: 'Pizza'; id: Scalars['ID']; name: Scalars['String']; toppings: Array; }; export type Topping = { __typename?: 'Topping'; id: Scalars['ID']; name: Scalars['String']; }; export type Query = { __typename?: 'Query'; getPizzaById: Pizza; getToppingById: Topping; getPizzaByName: Pizza; getToppingByName: Topping; listPizza: Array>; listTopping: Array>; }; export type QueryGetPizzaByIdArgs = { pizzaId: Scalars['ID']; }; export type QueryGetToppingByIdArgs = { toppingId: Scalars['ID']; }; export type QueryGetPizzaByNameArgs = { pizzaName: Scalars['ID']; }; export type QueryGetToppingByNameArgs = { toppingName: Scalars['ID']; }; export type ChangePizzaDto = { name: Scalars['String']; toppingIds: Array>; }; export type ChangeToppingDto = { name: Scalars['String']; }; export type Mutation = { __typename?: 'Mutation'; createPizza: Pizza; updatePizza: Pizza; createTopping: Topping; updateTopping: Topping; deleteTopping: Topping; deletePizza: Pizza; }; export type MutationCreatePizzaArgs = { createPizzaDto?: Maybe; }; export type MutationUpdatePizzaArgs = { pizzaId: Scalars['ID']; updatedPizzaDto: ChangePizzaDto; }; export type MutationCreateToppingArgs = { createToppingDto?: Maybe; }; export type MutationUpdateToppingArgs = { toppingId: Scalars['ID']; updatedToppingDto: ChangeToppingDto; }; export type MutationDeleteToppingArgs = { toppingId: Scalars['ID']; }; export type MutationDeletePizzaArgs = { pizzaId: Scalars['ID']; }; export type Subscription = { __typename?: 'Subscription'; pizzasChanged: Array>; toppingsChanged: Array>; }; 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 { subscribe: SubscriptionSubscribeFn<{ [key in TKey]: TResult }, TParent, TContext, TArgs>; resolve?: SubscriptionResolveFn; } export interface SubscriptionResolverObject { subscribe: SubscriptionSubscribeFn; resolve: SubscriptionResolveFn; } export type SubscriptionObject = | SubscriptionSubscriberObject | SubscriptionResolverObject; export type SubscriptionResolver = | ((...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 = ( 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 = { Pizza: ResolverTypeWrapper; ID: ResolverTypeWrapper; String: ResolverTypeWrapper; Topping: ResolverTypeWrapper; Query: ResolverTypeWrapper<{}>; ChangePizzaDto: ChangePizzaDto; ChangeToppingDto: ChangeToppingDto; Mutation: ResolverTypeWrapper<{}>; Subscription: ResolverTypeWrapper<{}>; Boolean: ResolverTypeWrapper; }; /** Mapping between all available schema types and the resolvers parents */ export type ResolversParentTypes = { Pizza: Pizza; ID: Scalars['ID']; String: Scalars['String']; Topping: Topping; Query: {}; ChangePizzaDto: ChangePizzaDto; ChangeToppingDto: ChangeToppingDto; Mutation: {}; Subscription: {}; Boolean: Scalars['Boolean']; }; export type PizzaResolvers = { id?: Resolver; name?: Resolver; toppings?: Resolver, ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn; }; export type ToppingResolvers = { id?: Resolver; name?: Resolver; __isTypeOf?: IsTypeOfResolverFn; }; export type QueryResolvers = { getPizzaById?: Resolver>; getToppingById?: Resolver>; getPizzaByName?: Resolver>; getToppingByName?: Resolver>; listPizza?: Resolver>, ParentType, ContextType>; listTopping?: Resolver>, ParentType, ContextType>; }; export type MutationResolvers = { createPizza?: Resolver>; updatePizza?: Resolver>; createTopping?: Resolver>; updateTopping?: Resolver>; deleteTopping?: Resolver>; deletePizza?: Resolver>; }; export type SubscriptionResolvers = { pizzasChanged?: SubscriptionResolver>, "pizzasChanged", ParentType, ContextType>; toppingsChanged?: SubscriptionResolver>, "toppingsChanged", ParentType, ContextType>; }; export type Resolvers = { Pizza?: PizzaResolvers; Topping?: ToppingResolvers; Query?: QueryResolvers; Mutation?: MutationResolvers; Subscription?: SubscriptionResolvers; }; /** * @deprecated * Use "Resolvers" root object instead. If you wish to get "IResolvers", add "typesPrefix: I" to your config. */ export type IResolvers = Resolvers; export type SdkFunctionWrapper = (action: () => Promise) => Promise; const defaultWrapper: SdkFunctionWrapper = sdkFunction => sdkFunction(); export function getSdk(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) { return { }; } export type Sdk = ReturnType;