Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions dev-test/modules/interface/generated.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import * as Types from '../types.js';
import * as gm from 'graphql-modules';
export namespace InterfaceModule {
interface DefinedFields {
Flower: 'id' | 'species' | 'age' | 'color';
Tree: 'id' | 'species' | 'age' | 'height';
Plant: 'id' | 'species' | 'age';
}

export type Plant = Pick<Types.Plant, DefinedFields['Plant']>;
export type Flower = Pick<Types.Flower, DefinedFields['Flower']>;
export type Tree = Pick<Types.Tree, DefinedFields['Tree']>;

export type FlowerResolvers = Pick<Types.FlowerResolvers, DefinedFields['Flower'] | '__isTypeOf'>;
export type TreeResolvers = Pick<Types.TreeResolvers, DefinedFields['Tree'] | '__isTypeOf'>;
export type PlantResolvers = Pick<Types.PlantResolvers, DefinedFields['Plant']>;

export interface Resolvers {
Flower?: FlowerResolvers;
Tree?: TreeResolvers;
}

export interface MiddlewareMap {
'*'?: {
'*'?: gm.Middleware[];
};
Flower?: {
'*'?: gm.Middleware[];
id?: gm.Middleware[];
species?: gm.Middleware[];
age?: gm.Middleware[];
color?: gm.Middleware[];
};
Tree?: {
'*'?: gm.Middleware[];
id?: gm.Middleware[];
species?: gm.Middleware[];
age?: gm.Middleware[];
height?: gm.Middleware[];
};
}
}
19 changes: 19 additions & 0 deletions dev-test/modules/interface/types/plants.graphql
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
interface Plant {
id: ID!
species: String!
age: Int!
}

type Flower implements Plant {
id: ID!
species: String!
age: Int!
color: String!
}

type Tree implements Plant {
id: ID!
species: String!
age: Int!
height: Float!
}
65 changes: 65 additions & 0 deletions dev-test/modules/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,14 @@ export type DonationInput = {
user: Scalars['ID']['input'];
};

export type Flower = Plant & {
__typename?: 'Flower';
age: Scalars['Int']['output'];
color: Scalars['String']['output'];
id: Scalars['ID']['output'];
species: Scalars['String']['output'];
};

export type Mutation = {
__typename?: 'Mutation';
donate?: Maybe<Donation>;
Expand All @@ -64,6 +72,12 @@ export type Paypal = {
url: Scalars['String']['output'];
};

export type Plant = {
age: Scalars['Int']['output'];
id: Scalars['ID']['output'];
species: Scalars['String']['output'];
};

export type Query = {
__typename?: 'Query';
articleById?: Maybe<Article>;
Expand All @@ -86,6 +100,14 @@ export type QueryUserByIdArgs = {
id: Scalars['ID']['input'];
};

export type Tree = Plant & {
__typename?: 'Tree';
age: Scalars['Int']['output'];
height: Scalars['Float']['output'];
id: Scalars['ID']['output'];
species: Scalars['String']['output'];
};

export type User = {
__typename?: 'User';
firstName: Scalars['String']['output'];
Expand Down Expand Up @@ -183,6 +205,11 @@ export type ResolversUnionTypes<_RefType extends Record<string, unknown>> = {
PaymentOption: CreditCard | Paypal;
};

/** Mapping of interface types */
export type ResolversInterfaceTypes<_RefType extends Record<string, unknown>> = {
Plant: Flower | Tree;
};

/** Mapping between all available schema types and the resolvers types */
export type ResolversTypes = {
Article: ResolverTypeWrapper<Omit<Article, 'author'> & { author: ResolversTypes['User'] }>;
Expand All @@ -193,13 +220,16 @@ export type ResolversTypes = {
>;
DonationInput: DonationInput;
Float: ResolverTypeWrapper<Scalars['Float']['output']>;
Flower: ResolverTypeWrapper<Flower>;
ID: ResolverTypeWrapper<Scalars['ID']['output']>;
Int: ResolverTypeWrapper<Scalars['Int']['output']>;
Mutation: ResolverTypeWrapper<Record<PropertyKey, never>>;
PaymentOption: ResolverTypeWrapper<ResolversUnionTypes<ResolversTypes>['PaymentOption']>;
Paypal: ResolverTypeWrapper<Paypal>;
Plant: ResolverTypeWrapper<ResolversInterfaceTypes<ResolversTypes>['Plant']>;
Query: ResolverTypeWrapper<Record<PropertyKey, never>>;
String: ResolverTypeWrapper<Scalars['String']['output']>;
Tree: ResolverTypeWrapper<Tree>;
User: ResolverTypeWrapper<
Omit<User, 'paymentOptions'> & { paymentOptions?: Maybe<Array<ResolversTypes['PaymentOption']>> }
>;
Expand All @@ -216,13 +246,16 @@ export type ResolversParentTypes = {
};
DonationInput: DonationInput;
Float: Scalars['Float']['output'];
Flower: Flower;
ID: Scalars['ID']['output'];
Int: Scalars['Int']['output'];
Mutation: Record<PropertyKey, never>;
PaymentOption: ResolversUnionTypes<ResolversParentTypes>['PaymentOption'];
Paypal: Paypal;
Plant: ResolversInterfaceTypes<ResolversParentTypes>['Plant'];
Query: Record<PropertyKey, never>;
String: Scalars['String']['output'];
Tree: Tree;
User: Omit<User, 'paymentOptions'> & { paymentOptions?: Maybe<Array<ResolversParentTypes['PaymentOption']>> };
};

Expand Down Expand Up @@ -256,6 +289,17 @@ export type DonationResolvers<
sender?: Resolver<ResolversTypes['User'], ParentType, ContextType>;
};

export type FlowerResolvers<
ContextType = any,
ParentType extends ResolversParentTypes['Flower'] = ResolversParentTypes['Flower']
> = {
age?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
color?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
species?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
};

export type MutationResolvers<
ContextType = any,
ParentType extends ResolversParentTypes['Mutation'] = ResolversParentTypes['Mutation']
Expand All @@ -280,6 +324,13 @@ export type PaypalResolvers<
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
};

export type PlantResolvers<
ContextType = any,
ParentType extends ResolversParentTypes['Plant'] = ResolversParentTypes['Plant']
> = {
__resolveType: TypeResolveFn<'Flower' | 'Tree', ParentType, ContextType>;
};

export type QueryResolvers<
ContextType = any,
ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query']
Expand All @@ -302,6 +353,17 @@ export type QueryResolvers<
users?: Resolver<Maybe<Array<ResolversTypes['User']>>, ParentType, ContextType>;
};

export type TreeResolvers<
ContextType = any,
ParentType extends ResolversParentTypes['Tree'] = ResolversParentTypes['Tree']
> = {
age?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
height?: Resolver<ResolversTypes['Float'], ParentType, ContextType>;
id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
species?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
};

export type UserResolvers<
ContextType = any,
ParentType extends ResolversParentTypes['User'] = ResolversParentTypes['User']
Expand All @@ -316,9 +378,12 @@ export type Resolvers<ContextType = any> = {
Article?: ArticleResolvers<ContextType>;
CreditCard?: CreditCardResolvers<ContextType>;
Donation?: DonationResolvers<ContextType>;
Flower?: FlowerResolvers<ContextType>;
Mutation?: MutationResolvers<ContextType>;
PaymentOption?: PaymentOptionResolvers<ContextType>;
Paypal?: PaypalResolvers<ContextType>;
Plant?: PlantResolvers<ContextType>;
Query?: QueryResolvers<ContextType>;
Tree?: TreeResolvers<ContextType>;
User?: UserResolvers<ContextType>;
};
Loading