import { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from "graphql"; import { GraphQLContext } from "./context"; export type Maybe = T | null; export type InputMaybe = Maybe; export type Exact = { [K in keyof T]: T[K] }; export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; export type RequireFields = Omit & { [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; /** A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. */ DateTime: string | Date; /** A field whose value conforms to the standard internet email address format as specified in RFC822: https://www.w3.org/Protocols/rfc822/. */ EmailAddress: string; }; export type User = { __typename?: "User"; id: Scalars["ID"]; name: Scalars["String"]; lastName: Scalars["String"]; email: Scalars["EmailAddress"]; createdAt: Scalars["DateTime"]; updatedAt?: Maybe; deletedAt?: Maybe; }; export type CreateUserInput = { name: Scalars["String"]; lastName: Scalars["String"]; email: Scalars["EmailAddress"]; }; export type UpdateUserInput = { id: Scalars["ID"]; name?: InputMaybe; lastName?: InputMaybe; email?: InputMaybe; }; export type Query = { __typename?: "Query"; user: User; users: Array; }; export type QueryUserArgs = { id: Scalars["ID"]; }; export type Mutation = { __typename?: "Mutation"; createUser: User; updateUser: User; deleteUser?: Maybe; }; export type MutationCreateUserArgs = { input: CreateUserInput; }; export type MutationUpdateUserArgs = { input: UpdateUserInput; }; export type MutationDeleteUserArgs = { id: Scalars["ID"]; }; export type ResolverTypeWrapper = Promise | T; export type ResolverWithResolve = { resolve: ResolverFn; }; export type Resolver = | ResolverFn | ResolverWithResolve; export type ResolverFn = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo, ) => Promise | TResult; export type SubscriptionSubscribeFn = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo, ) => AsyncIterable | 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; } export interface SubscriptionResolverObject { subscribe: SubscriptionSubscribeFn; resolve: SubscriptionResolveFn; } export type SubscriptionObject = | 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, context: TContext, 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 = { DateTime: ResolverTypeWrapper; EmailAddress: ResolverTypeWrapper; User: ResolverTypeWrapper; ID: ResolverTypeWrapper; String: ResolverTypeWrapper; CreateUserInput: CreateUserInput; UpdateUserInput: UpdateUserInput; Query: ResolverTypeWrapper<{}>; Mutation: ResolverTypeWrapper<{}>; Boolean: ResolverTypeWrapper; }; /** Mapping between all available schema types and the resolvers parents */ export type ResolversParentTypes = { DateTime: Scalars["DateTime"]; EmailAddress: Scalars["EmailAddress"]; User: User; ID: Scalars["ID"]; String: Scalars["String"]; CreateUserInput: CreateUserInput; UpdateUserInput: UpdateUserInput; Query: {}; Mutation: {}; Boolean: Scalars["Boolean"]; }; export interface DateTimeScalarConfig extends GraphQLScalarTypeConfig { name: "DateTime"; } export interface EmailAddressScalarConfig extends GraphQLScalarTypeConfig { name: "EmailAddress"; } export type UserResolvers< ContextType = GraphQLContext, ParentType extends ResolversParentTypes["User"] = ResolversParentTypes["User"], > = { id?: Resolver; name?: Resolver; lastName?: Resolver; email?: Resolver; createdAt?: Resolver; updatedAt?: Resolver, ParentType, ContextType>; deletedAt?: Resolver, ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn; }; export type QueryResolvers< ContextType = GraphQLContext, ParentType extends ResolversParentTypes["Query"] = ResolversParentTypes["Query"], > = { user?: Resolver< ResolversTypes["User"], ParentType, ContextType, RequireFields >; users?: Resolver, ParentType, ContextType>; }; export type MutationResolvers< ContextType = GraphQLContext, ParentType extends ResolversParentTypes["Mutation"] = ResolversParentTypes["Mutation"], > = { createUser?: Resolver< ResolversTypes["User"], ParentType, ContextType, RequireFields >; updateUser?: Resolver< ResolversTypes["User"], ParentType, ContextType, RequireFields >; deleteUser?: Resolver< Maybe, ParentType, ContextType, RequireFields >; }; export type Resolvers = { DateTime?: GraphQLScalarType; EmailAddress?: GraphQLScalarType; User?: UserResolvers; Query?: QueryResolvers; Mutation?: MutationResolvers; };