UNPKG

graphql-codegen-plugin-typescript-swr

Version:

A GraphQL code generator plug-in that automatically generates utility functions for SWR.

234 lines (201 loc) 7.67 kB
import { GraphQLResolveInfo } from 'graphql'; export type Maybe<T> = T | null; export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: string; String: string; Boolean: boolean; Int: number; Float: number; _FieldSet: any; }; export type Query = { __typename?: 'Query'; users?: Maybe<Array<Maybe<User>>>; }; export type User = { __typename?: 'User'; id: Scalars['Int']; name: Scalars['String']; email: Scalars['String']; address?: Maybe<Address>; }; export type Address = { __typename?: 'Address'; lines: Lines; city?: Maybe<Scalars['String']>; state?: Maybe<Scalars['String']>; }; export type Lines = { __typename?: 'Lines'; line1: Scalars['String']; line2?: Maybe<Scalars['String']>; }; export type Book = { __typename?: 'Book'; id: Scalars['ID']; }; export type ResolverTypeWrapper<T> = Promise<T> | T; export type ReferenceResolver<TResult, TReference, TContext> = ( reference: TReference, context: TContext, info: GraphQLResolveInfo ) => Promise<TResult> | TResult; type ScalarCheck<T, S> = S extends true ? T : NullableCheck<T, S>; type NullableCheck<T, S> = Maybe<T> extends T ? Maybe<ListCheck<NonNullable<T>, S>> : ListCheck<T, S>; type ListCheck<T, S> = T extends (infer U)[] ? NullableCheck<U, S>[] : GraphQLRecursivePick<T, S>; export type GraphQLRecursivePick<T, S> = { [K in keyof T & keyof S]: ScalarCheck<T[K], S[K]> }; export type LegacyStitchingResolver<TResult, TParent, TContext, TArgs> = { fragment: string; resolve: ResolverFn<TResult, TParent, TContext, TArgs>; }; export type NewStitchingResolver<TResult, TParent, TContext, TArgs> = { selectionSet: string; resolve: ResolverFn<TResult, TParent, TContext, TArgs>; }; export type StitchingResolver<TResult, TParent, TContext, TArgs> = | LegacyStitchingResolver<TResult, TParent, TContext, TArgs> | NewStitchingResolver<TResult, TParent, TContext, TArgs>; export type Resolver<TResult, TParent = {}, TContext = {}, TArgs = {}> = | ResolverFn<TResult, TParent, TContext, TArgs> | StitchingResolver<TResult, TParent, TContext, TArgs>; export type ResolverFn<TResult, TParent, TContext, TArgs> = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo ) => Promise<TResult> | TResult; export type SubscriptionSubscribeFn<TResult, TParent, TContext, TArgs> = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo ) => AsyncIterator<TResult> | Promise<AsyncIterator<TResult>>; export type SubscriptionResolveFn<TResult, TParent, TContext, TArgs> = ( parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo ) => TResult | Promise<TResult>; 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<TResult, TParent, TContext, TArgs> { subscribe: SubscriptionSubscribeFn<any, TParent, TContext, TArgs>; resolve: SubscriptionResolveFn<TResult, any, TContext, TArgs>; } export type SubscriptionObject<TResult, TKey extends string, TParent, TContext, TArgs> = | SubscriptionSubscriberObject<TResult, TKey, TParent, TContext, TArgs> | SubscriptionResolverObject<TResult, TParent, TContext, TArgs>; export type SubscriptionResolver<TResult, TKey extends string, TParent = {}, TContext = {}, TArgs = {}> = | ((...args: any[]) => SubscriptionObject<TResult, TKey, TParent, TContext, TArgs>) | SubscriptionObject<TResult, TKey, TParent, TContext, TArgs>; export type TypeResolveFn<TTypes, TParent = {}, TContext = {}> = ( parent: TParent, context: TContext, info: GraphQLResolveInfo ) => Maybe<TTypes> | Promise<Maybe<TTypes>>; export type IsTypeOfResolverFn<T = {}, TContext = {}> = ( obj: T, context: TContext, info: GraphQLResolveInfo ) => boolean | Promise<boolean>; export type NextResolverFn<T> = () => Promise<T>; export type DirectiveResolverFn<TResult = {}, TParent = {}, TContext = {}, TArgs = {}> = ( next: NextResolverFn<TResult>, parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo ) => TResult | Promise<TResult>; /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { Query: ResolverTypeWrapper<{}>; User: ResolverTypeWrapper<User>; Int: ResolverTypeWrapper<Scalars['Int']>; String: ResolverTypeWrapper<Scalars['String']>; Address: ResolverTypeWrapper<Address>; Lines: ResolverTypeWrapper<Lines>; Book: ResolverTypeWrapper<Book>; ID: ResolverTypeWrapper<Scalars['ID']>; Boolean: ResolverTypeWrapper<Scalars['Boolean']>; }; /** Mapping between all available schema types and the resolvers parents */ export type ResolversParentTypes = { Query: {}; User: User; Int: Scalars['Int']; String: Scalars['String']; Address: Address; Lines: Lines; Book: Book; ID: Scalars['ID']; Boolean: Scalars['Boolean']; }; export type QueryResolvers< ContextType = any, ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query'] > = { users?: Resolver<Maybe<Array<Maybe<ResolversTypes['User']>>>, ParentType, ContextType>; }; export type UserResolvers< ContextType = any, ParentType extends ResolversParentTypes['User'] = ResolversParentTypes['User'] > = { __resolveReference?: ReferenceResolver< Maybe<ResolversTypes['User']>, { __typename: 'User' } & ( | GraphQLRecursivePick<ParentType, { id: true }> | GraphQLRecursivePick<ParentType, { name: true }> ), ContextType >; email?: Resolver< ResolversTypes['String'], { __typename: 'User' } & ( | GraphQLRecursivePick<ParentType, { id: true }> | GraphQLRecursivePick<ParentType, { name: true }> ) & GraphQLRecursivePick<ParentType, { address: { city: true; lines: { line2: true } } }>, ContextType >; __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>; }; export type AddressResolvers< ContextType = any, ParentType extends ResolversParentTypes['Address'] = ResolversParentTypes['Address'] > = { lines?: Resolver<ResolversTypes['Lines'], ParentType, ContextType>; city?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>; state?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>; }; export type LinesResolvers< ContextType = any, ParentType extends ResolversParentTypes['Lines'] = ResolversParentTypes['Lines'] > = { line1?: Resolver<ResolversTypes['String'], ParentType, ContextType>; line2?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>; }; export type BookResolvers< ContextType = any, ParentType extends ResolversParentTypes['Book'] = ResolversParentTypes['Book'] > = { id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>; }; export type Resolvers<ContextType = any> = { Query?: QueryResolvers<ContextType>; User?: UserResolvers<ContextType>; Address?: AddressResolvers<ContextType>; Lines?: LinesResolvers<ContextType>; Book?: BookResolvers<ContextType>; }; /** * @deprecated * Use "Resolvers" root object instead. If you wish to get "IResolvers", add "typesPrefix: I" to your config. */ export type IResolvers<ContextType = any> = Resolvers<ContextType>;