diff --git a/.changeset/witty-windows-search.md b/.changeset/witty-windows-search.md index a3495650..3010e48b 100644 --- a/.changeset/witty-windows-search.md +++ b/.changeset/witty-windows-search.md @@ -1,5 +1,21 @@ --- -'@eddeee888/gcg-typescript-resolver-files': patch +'@eddeee888/gcg-typescript-resolver-files': minor --- -Add defineConfig +Add `defineConfig`. This sets up `preset`, `presetConfig` and `watchPattern`. + +Example: + +```ts +import type { CodegenConfig } from '@graphql-codegen/cli'; +import { defineConfig } from '@eddeee888/typescript-resolver-files'; + +const config: CodegenConfig = { + schema: 'src/schema/**/*.graphql', + generates: { + 'src/schema': defineConfig(), + }, +}; + +export default config; +``` diff --git a/package.json b/package.json index 6371d8a8..2ab14d83 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@graphql-codegen/add": "4.0.0", "@graphql-codegen/cli": "3.3.0", "@graphql-codegen/plugin-helpers": "4.2.0", - "@graphql-codegen/typescript": "3.0.0", + "@graphql-codegen/typescript": "3.0.3", "@graphql-codegen/typescript-resolvers": "3.2.0", "@nrwl/devkit": "15.9.1", "@nrwl/eslint-plugin-nx": "15.9.1", diff --git a/packages/typescript-resolver-files-e2e/src/test-config-overrides/modules/types.gen.ts b/packages/typescript-resolver-files-e2e/src/test-config-overrides/modules/types.gen.ts index 3ec4f831..fd35d1d5 100644 --- a/packages/typescript-resolver-files-e2e/src/test-config-overrides/modules/types.gen.ts +++ b/packages/typescript-resolver-files-e2e/src/test-config-overrides/modules/types.gen.ts @@ -286,6 +286,24 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + +/** Mapping of union parent types */ +export type ResolversUnionParentTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { BigInt: ResolverTypeWrapper; @@ -305,27 +323,27 @@ export type ResolversTypes = { StandardError: ResolverTypeWrapper; Subscription: ResolverTypeWrapper<{}>; Topic: ResolverTypeWrapper; - TopicByIdPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicByIdResult']; + TopicByIdPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicByIdPayload'] + >; TopicByIdResult: ResolverTypeWrapper; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicCreateResult']; + TopicCreatePayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicCreatePayload'] + >; TopicCreateResult: ResolverTypeWrapper; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicEditResult']; + TopicEditPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicEditPayload'] + >; TopicEditResult: ResolverTypeWrapper; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicsCreatedByUserPayload'] + >; TopicsCreatedByUserResult: ResolverTypeWrapper; User: ResolverTypeWrapper; - UserPayload: ResolversTypes['StandardError'] | ResolversTypes['UserResult']; + UserPayload: ResolverTypeWrapper; UserResult: ResolverTypeWrapper; Boolean: ResolverTypeWrapper; }; @@ -347,29 +365,19 @@ export type ResolversParentTypes = { StandardError: StandardError; Subscription: {}; Topic: Topic; - TopicByIdPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicByIdResult']; + TopicByIdPayload: ResolversUnionParentTypes['TopicByIdPayload']; TopicByIdResult: TopicByIdResult; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicCreateResult']; + TopicCreatePayload: ResolversUnionParentTypes['TopicCreatePayload']; TopicCreateResult: TopicCreateResult; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicEditResult']; + TopicEditPayload: ResolversUnionParentTypes['TopicEditPayload']; TopicEditResult: TopicEditResult; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolversUnionParentTypes['TopicsCreatedByUserPayload']; TopicsCreatedByUserResult: TopicsCreatedByUserResult; User: User; - UserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['UserResult']; + UserPayload: ResolversUnionParentTypes['UserPayload']; UserResult: UserResult; Boolean: Scalars['Boolean']; }; diff --git a/packages/typescript-resolver-files-e2e/src/test-external-resolvers/modules/types.generated.ts b/packages/typescript-resolver-files-e2e/src/test-external-resolvers/modules/types.generated.ts index c29dfc2f..9f5d5442 100644 --- a/packages/typescript-resolver-files-e2e/src/test-external-resolvers/modules/types.generated.ts +++ b/packages/typescript-resolver-files-e2e/src/test-external-resolvers/modules/types.generated.ts @@ -285,6 +285,24 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + +/** Mapping of union parent types */ +export type ResolversUnionParentTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { AbsoluteDefault: ResolverTypeWrapper; @@ -315,27 +333,27 @@ export type ResolversTypes = { StandardError: ResolverTypeWrapper; Subscription: ResolverTypeWrapper<{}>; Topic: ResolverTypeWrapper; - TopicByIdPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicByIdResult']; + TopicByIdPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicByIdPayload'] + >; TopicByIdResult: ResolverTypeWrapper; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicCreateResult']; + TopicCreatePayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicCreatePayload'] + >; TopicCreateResult: ResolverTypeWrapper; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicEditResult']; + TopicEditPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicEditPayload'] + >; TopicEditResult: ResolverTypeWrapper; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicsCreatedByUserPayload'] + >; TopicsCreatedByUserResult: ResolverTypeWrapper; User: ResolverTypeWrapper; - UserPayload: ResolversTypes['StandardError'] | ResolversTypes['UserResult']; + UserPayload: ResolverTypeWrapper; UserResult: ResolverTypeWrapper; Boolean: ResolverTypeWrapper; }; @@ -363,29 +381,19 @@ export type ResolversParentTypes = { StandardError: StandardError; Subscription: {}; Topic: Topic; - TopicByIdPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicByIdResult']; + TopicByIdPayload: ResolversUnionParentTypes['TopicByIdPayload']; TopicByIdResult: TopicByIdResult; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicCreateResult']; + TopicCreatePayload: ResolversUnionParentTypes['TopicCreatePayload']; TopicCreateResult: TopicCreateResult; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicEditResult']; + TopicEditPayload: ResolversUnionParentTypes['TopicEditPayload']; TopicEditResult: TopicEditResult; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolversUnionParentTypes['TopicsCreatedByUserPayload']; TopicsCreatedByUserResult: TopicsCreatedByUserResult; User: User; - UserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['UserResult']; + UserPayload: ResolversUnionParentTypes['UserPayload']; UserResult: UserResult; Boolean: Scalars['Boolean']; }; diff --git a/packages/typescript-resolver-files-e2e/src/test-mappers-vs-schema-types/modules/types.generated.ts b/packages/typescript-resolver-files-e2e/src/test-mappers-vs-schema-types/modules/types.generated.ts index 696f0137..f3514b56 100644 --- a/packages/typescript-resolver-files-e2e/src/test-mappers-vs-schema-types/modules/types.generated.ts +++ b/packages/typescript-resolver-files-e2e/src/test-mappers-vs-schema-types/modules/types.generated.ts @@ -281,6 +281,58 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes = { + TopicByIdPayload: + | Error + | (Omit & { + result?: Maybe; + }); + TopicCreatePayload: + | Error + | (Omit & { result: ResolversTypes['Topic'] }); + TopicEditPayload: + | Error + | (Omit & { result: ResolversTypes['Topic'] }); + TopicsCreatedByUserPayload: + | Error + | (Omit & { + result: Array; + }); + UserPayload: + | Error + | (Omit & { result?: Maybe }); +}; + +/** Mapping of union parent types */ +export type ResolversUnionParentTypes = { + TopicByIdPayload: + | Error + | (Omit & { + result?: Maybe; + }); + TopicCreatePayload: + | Error + | (Omit & { + result: ResolversParentTypes['Topic']; + }); + TopicEditPayload: + | Error + | (Omit & { + result: ResolversParentTypes['Topic']; + }); + TopicsCreatedByUserPayload: + | Error + | (Omit & { + result: Array; + }); + UserPayload: + | Error + | (Omit & { + result?: Maybe; + }); +}; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { Account: ResolverTypeWrapper; @@ -298,35 +350,39 @@ export type ResolversTypes = { Topic: ResolverTypeWrapper< Omit & { creator: ResolversTypes['User'] } >; - TopicByIdPayload: ResolversTypes['Error'] | ResolversTypes['TopicByIdResult']; + TopicByIdPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicByIdPayload'] + >; TopicByIdResult: ResolverTypeWrapper< Omit & { result?: Maybe; } >; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversTypes['Error'] - | ResolversTypes['TopicCreateResult']; + TopicCreatePayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicCreatePayload'] + >; TopicCreateResult: ResolverTypeWrapper< Omit & { result: ResolversTypes['Topic'] } >; TopicEditInput: TopicEditInput; - TopicEditPayload: ResolversTypes['Error'] | ResolversTypes['TopicEditResult']; + TopicEditPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicEditPayload'] + >; TopicEditResult: ResolverTypeWrapper< Omit & { result: ResolversTypes['Topic'] } >; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversTypes['Error'] - | ResolversTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicsCreatedByUserPayload'] + >; TopicsCreatedByUserResult: ResolverTypeWrapper< Omit & { result: Array; } >; User: ResolverTypeWrapper; - UserPayload: ResolversTypes['Error'] | ResolversTypes['UserResult']; + UserPayload: ResolverTypeWrapper; UserResult: ResolverTypeWrapper< Omit & { result?: Maybe } >; @@ -348,37 +404,27 @@ export type ResolversParentTypes = { Query: {}; Subscription: {}; Topic: Omit & { creator: ResolversParentTypes['User'] }; - TopicByIdPayload: - | ResolversParentTypes['Error'] - | ResolversParentTypes['TopicByIdResult']; + TopicByIdPayload: ResolversUnionParentTypes['TopicByIdPayload']; TopicByIdResult: Omit & { result?: Maybe; }; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversParentTypes['Error'] - | ResolversParentTypes['TopicCreateResult']; + TopicCreatePayload: ResolversUnionParentTypes['TopicCreatePayload']; TopicCreateResult: Omit & { result: ResolversParentTypes['Topic']; }; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversParentTypes['Error'] - | ResolversParentTypes['TopicEditResult']; + TopicEditPayload: ResolversUnionParentTypes['TopicEditPayload']; TopicEditResult: Omit & { result: ResolversParentTypes['Topic']; }; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversParentTypes['Error'] - | ResolversParentTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolversUnionParentTypes['TopicsCreatedByUserPayload']; TopicsCreatedByUserResult: Omit & { result: Array; }; User: UserMapper; - UserPayload: - | ResolversParentTypes['Error'] - | ResolversParentTypes['UserResult']; + UserPayload: ResolversUnionParentTypes['UserPayload']; UserResult: Omit & { result?: Maybe; }; diff --git a/packages/typescript-resolver-files-e2e/src/test-mappers/modules/types.generated.ts b/packages/typescript-resolver-files-e2e/src/test-mappers/modules/types.generated.ts index 00b17efa..1cd8c070 100644 --- a/packages/typescript-resolver-files-e2e/src/test-mappers/modules/types.generated.ts +++ b/packages/typescript-resolver-files-e2e/src/test-mappers/modules/types.generated.ts @@ -278,6 +278,24 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + +/** Mapping of union parent types */ +export type ResolversUnionParentTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { DateTime: ResolverTypeWrapper; @@ -294,27 +312,27 @@ export type ResolversTypes = { StandardError: ResolverTypeWrapper; Subscription: ResolverTypeWrapper<{}>; Topic: ResolverTypeWrapper; - TopicByIdPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicByIdResult']; + TopicByIdPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicByIdPayload'] + >; TopicByIdResult: ResolverTypeWrapper; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicCreateResult']; + TopicCreatePayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicCreatePayload'] + >; TopicCreateResult: ResolverTypeWrapper; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicEditResult']; + TopicEditPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicEditPayload'] + >; TopicEditResult: ResolverTypeWrapper; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicsCreatedByUserPayload'] + >; TopicsCreatedByUserResult: ResolverTypeWrapper; User: ResolverTypeWrapper; - UserPayload: ResolversTypes['StandardError'] | ResolversTypes['UserResult']; + UserPayload: ResolverTypeWrapper; UserResult: ResolverTypeWrapper; Boolean: ResolverTypeWrapper; }; @@ -334,29 +352,19 @@ export type ResolversParentTypes = { StandardError: StandardError; Subscription: {}; Topic: Topic; - TopicByIdPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicByIdResult']; + TopicByIdPayload: ResolversUnionParentTypes['TopicByIdPayload']; TopicByIdResult: TopicByIdResult; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicCreateResult']; + TopicCreatePayload: ResolversUnionParentTypes['TopicCreatePayload']; TopicCreateResult: TopicCreateResult; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicEditResult']; + TopicEditPayload: ResolversUnionParentTypes['TopicEditPayload']; TopicEditResult: TopicEditResult; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolversUnionParentTypes['TopicsCreatedByUserPayload']; TopicsCreatedByUserResult: TopicsCreatedByUserResult; User: User; - UserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['UserResult']; + UserPayload: ResolversUnionParentTypes['UserPayload']; UserResult: UserResult; Boolean: Scalars['Boolean']; }; diff --git a/packages/typescript-resolver-files-e2e/src/test-merged/graphql/resolvers/types.generated.ts b/packages/typescript-resolver-files-e2e/src/test-merged/graphql/resolvers/types.generated.ts index d8587ad3..8d0dafed 100644 --- a/packages/typescript-resolver-files-e2e/src/test-merged/graphql/resolvers/types.generated.ts +++ b/packages/typescript-resolver-files-e2e/src/test-merged/graphql/resolvers/types.generated.ts @@ -269,6 +269,58 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes = { + TopicByIdPayload: + | StandardError + | (Omit & { + result?: Maybe; + }); + TopicCreatePayload: + | StandardError + | (Omit & { result: ResolversTypes['Topic'] }); + TopicEditPayload: + | StandardError + | (Omit & { result: ResolversTypes['Topic'] }); + TopicsCreatedByUserPayload: + | StandardError + | (Omit & { + result: Array; + }); + UserPayload: + | StandardError + | (Omit & { result?: Maybe }); +}; + +/** Mapping of union parent types */ +export type ResolversUnionParentTypes = { + TopicByIdPayload: + | StandardError + | (Omit & { + result?: Maybe; + }); + TopicCreatePayload: + | StandardError + | (Omit & { + result: ResolversParentTypes['Topic']; + }); + TopicEditPayload: + | StandardError + | (Omit & { + result: ResolversParentTypes['Topic']; + }); + TopicsCreatedByUserPayload: + | StandardError + | (Omit & { + result: Array; + }); + UserPayload: + | StandardError + | (Omit & { + result?: Maybe; + }); +}; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { DateTime: ResolverTypeWrapper; @@ -283,39 +335,39 @@ export type ResolversTypes = { String: ResolverTypeWrapper; StandardError: ResolverTypeWrapper; Topic: ResolverTypeWrapper; - TopicByIdPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicByIdResult']; + TopicByIdPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicByIdPayload'] + >; TopicByIdResult: ResolverTypeWrapper< Omit & { result?: Maybe; } >; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicCreateResult']; + TopicCreatePayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicCreatePayload'] + >; TopicCreateResult: ResolverTypeWrapper< Omit & { result: ResolversTypes['Topic'] } >; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicEditResult']; + TopicEditPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicEditPayload'] + >; TopicEditResult: ResolverTypeWrapper< Omit & { result: ResolversTypes['Topic'] } >; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicsCreatedByUserPayload'] + >; TopicsCreatedByUserResult: ResolverTypeWrapper< Omit & { result: Array; } >; User: ResolverTypeWrapper; - UserPayload: ResolversTypes['StandardError'] | ResolversTypes['UserResult']; + UserPayload: ResolverTypeWrapper; UserResult: ResolverTypeWrapper< Omit & { result?: Maybe } >; @@ -335,37 +387,27 @@ export type ResolversParentTypes = { String: Scalars['String']; StandardError: StandardError; Topic: TopicMapper; - TopicByIdPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicByIdResult']; + TopicByIdPayload: ResolversUnionParentTypes['TopicByIdPayload']; TopicByIdResult: Omit & { result?: Maybe; }; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicCreateResult']; + TopicCreatePayload: ResolversUnionParentTypes['TopicCreatePayload']; TopicCreateResult: Omit & { result: ResolversParentTypes['Topic']; }; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicEditResult']; + TopicEditPayload: ResolversUnionParentTypes['TopicEditPayload']; TopicEditResult: Omit & { result: ResolversParentTypes['Topic']; }; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolversUnionParentTypes['TopicsCreatedByUserPayload']; TopicsCreatedByUserResult: Omit & { result: Array; }; User: UserMapper; - UserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['UserResult']; + UserPayload: ResolversUnionParentTypes['UserPayload']; UserResult: Omit & { result?: Maybe; }; diff --git a/packages/typescript-resolver-files-e2e/src/test-modules-resolver-main-file-mode/modules/types.generated.ts b/packages/typescript-resolver-files-e2e/src/test-modules-resolver-main-file-mode/modules/types.generated.ts index 2bdb1979..69efaa77 100644 --- a/packages/typescript-resolver-files-e2e/src/test-modules-resolver-main-file-mode/modules/types.generated.ts +++ b/packages/typescript-resolver-files-e2e/src/test-modules-resolver-main-file-mode/modules/types.generated.ts @@ -277,6 +277,24 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + +/** Mapping of union parent types */ +export type ResolversUnionParentTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { DateTime: ResolverTypeWrapper; @@ -293,27 +311,27 @@ export type ResolversTypes = { StandardError: ResolverTypeWrapper; Subscription: ResolverTypeWrapper<{}>; Topic: ResolverTypeWrapper; - TopicByIdPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicByIdResult']; + TopicByIdPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicByIdPayload'] + >; TopicByIdResult: ResolverTypeWrapper; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicCreateResult']; + TopicCreatePayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicCreatePayload'] + >; TopicCreateResult: ResolverTypeWrapper; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicEditResult']; + TopicEditPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicEditPayload'] + >; TopicEditResult: ResolverTypeWrapper; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicsCreatedByUserPayload'] + >; TopicsCreatedByUserResult: ResolverTypeWrapper; User: ResolverTypeWrapper; - UserPayload: ResolversTypes['StandardError'] | ResolversTypes['UserResult']; + UserPayload: ResolverTypeWrapper; UserResult: ResolverTypeWrapper; Boolean: ResolverTypeWrapper; }; @@ -333,29 +351,19 @@ export type ResolversParentTypes = { StandardError: StandardError; Subscription: {}; Topic: Topic; - TopicByIdPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicByIdResult']; + TopicByIdPayload: ResolversUnionParentTypes['TopicByIdPayload']; TopicByIdResult: TopicByIdResult; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicCreateResult']; + TopicCreatePayload: ResolversUnionParentTypes['TopicCreatePayload']; TopicCreateResult: TopicCreateResult; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicEditResult']; + TopicEditPayload: ResolversUnionParentTypes['TopicEditPayload']; TopicEditResult: TopicEditResult; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolversUnionParentTypes['TopicsCreatedByUserPayload']; TopicsCreatedByUserResult: TopicsCreatedByUserResult; User: User; - UserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['UserResult']; + UserPayload: ResolversUnionParentTypes['UserPayload']; UserResult: UserResult; Boolean: Scalars['Boolean']; }; diff --git a/packages/typescript-resolver-files-e2e/src/test-modules-typedefs-file-mode/modules/types.generated.ts b/packages/typescript-resolver-files-e2e/src/test-modules-typedefs-file-mode/modules/types.generated.ts index 2bdb1979..69efaa77 100644 --- a/packages/typescript-resolver-files-e2e/src/test-modules-typedefs-file-mode/modules/types.generated.ts +++ b/packages/typescript-resolver-files-e2e/src/test-modules-typedefs-file-mode/modules/types.generated.ts @@ -277,6 +277,24 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + +/** Mapping of union parent types */ +export type ResolversUnionParentTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { DateTime: ResolverTypeWrapper; @@ -293,27 +311,27 @@ export type ResolversTypes = { StandardError: ResolverTypeWrapper; Subscription: ResolverTypeWrapper<{}>; Topic: ResolverTypeWrapper; - TopicByIdPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicByIdResult']; + TopicByIdPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicByIdPayload'] + >; TopicByIdResult: ResolverTypeWrapper; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicCreateResult']; + TopicCreatePayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicCreatePayload'] + >; TopicCreateResult: ResolverTypeWrapper; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicEditResult']; + TopicEditPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicEditPayload'] + >; TopicEditResult: ResolverTypeWrapper; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicsCreatedByUserPayload'] + >; TopicsCreatedByUserResult: ResolverTypeWrapper; User: ResolverTypeWrapper; - UserPayload: ResolversTypes['StandardError'] | ResolversTypes['UserResult']; + UserPayload: ResolverTypeWrapper; UserResult: ResolverTypeWrapper; Boolean: ResolverTypeWrapper; }; @@ -333,29 +351,19 @@ export type ResolversParentTypes = { StandardError: StandardError; Subscription: {}; Topic: Topic; - TopicByIdPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicByIdResult']; + TopicByIdPayload: ResolversUnionParentTypes['TopicByIdPayload']; TopicByIdResult: TopicByIdResult; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicCreateResult']; + TopicCreatePayload: ResolversUnionParentTypes['TopicCreatePayload']; TopicCreateResult: TopicCreateResult; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicEditResult']; + TopicEditPayload: ResolversUnionParentTypes['TopicEditPayload']; TopicEditResult: TopicEditResult; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolversUnionParentTypes['TopicsCreatedByUserPayload']; TopicsCreatedByUserResult: TopicsCreatedByUserResult; User: User; - UserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['UserResult']; + UserPayload: ResolversUnionParentTypes['UserPayload']; UserResult: UserResult; Boolean: Scalars['Boolean']; }; diff --git a/packages/typescript-resolver-files-e2e/src/test-modules/modules/types.generated.ts b/packages/typescript-resolver-files-e2e/src/test-modules/modules/types.generated.ts index 259ed744..f9703f1d 100644 --- a/packages/typescript-resolver-files-e2e/src/test-modules/modules/types.generated.ts +++ b/packages/typescript-resolver-files-e2e/src/test-modules/modules/types.generated.ts @@ -280,6 +280,52 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes = { + TopicByIdPayload: + | StandardError + | (Omit & { + result?: Maybe; + }); + TopicCreatePayload: + | StandardError + | (Omit & { result: ResolversTypes['Topic'] }); + TopicEditPayload: + | StandardError + | (Omit & { result: ResolversTypes['Topic'] }); + TopicsCreatedByUserPayload: + | StandardError + | (Omit & { + result: Array; + }); + UserPayload: StandardError | UserResult; +}; + +/** Mapping of union parent types */ +export type ResolversUnionParentTypes = { + TopicByIdPayload: + | StandardError + | (Omit & { + result?: Maybe; + }); + TopicCreatePayload: + | StandardError + | (Omit & { + result: ResolversParentTypes['Topic']; + }); + TopicEditPayload: + | StandardError + | (Omit & { + result: ResolversParentTypes['Topic']; + }); + TopicsCreatedByUserPayload: + | StandardError + | (Omit & { + result: Array; + }); + UserPayload: StandardError | UserResult; +}; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { DateTime: ResolverTypeWrapper; @@ -296,39 +342,39 @@ export type ResolversTypes = { StandardError: ResolverTypeWrapper; Subscription: ResolverTypeWrapper<{}>; Topic: ResolverTypeWrapper; - TopicByIdPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicByIdResult']; + TopicByIdPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicByIdPayload'] + >; TopicByIdResult: ResolverTypeWrapper< Omit & { result?: Maybe; } >; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicCreateResult']; + TopicCreatePayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicCreatePayload'] + >; TopicCreateResult: ResolverTypeWrapper< Omit & { result: ResolversTypes['Topic'] } >; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicEditResult']; + TopicEditPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicEditPayload'] + >; TopicEditResult: ResolverTypeWrapper< Omit & { result: ResolversTypes['Topic'] } >; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicsCreatedByUserPayload'] + >; TopicsCreatedByUserResult: ResolverTypeWrapper< Omit & { result: Array; } >; User: ResolverTypeWrapper; - UserPayload: ResolversTypes['StandardError'] | ResolversTypes['UserResult']; + UserPayload: ResolverTypeWrapper; UserResult: ResolverTypeWrapper; Boolean: ResolverTypeWrapper; }; @@ -348,37 +394,27 @@ export type ResolversParentTypes = { StandardError: StandardError; Subscription: {}; Topic: TopicMapper; - TopicByIdPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicByIdResult']; + TopicByIdPayload: ResolversUnionParentTypes['TopicByIdPayload']; TopicByIdResult: Omit & { result?: Maybe; }; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicCreateResult']; + TopicCreatePayload: ResolversUnionParentTypes['TopicCreatePayload']; TopicCreateResult: Omit & { result: ResolversParentTypes['Topic']; }; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicEditResult']; + TopicEditPayload: ResolversUnionParentTypes['TopicEditPayload']; TopicEditResult: Omit & { result: ResolversParentTypes['Topic']; }; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolversUnionParentTypes['TopicsCreatedByUserPayload']; TopicsCreatedByUserResult: Omit & { result: Array; }; User: User; - UserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['UserResult']; + UserPayload: ResolversUnionParentTypes['UserPayload']; UserResult: UserResult; Boolean: Scalars['Boolean']; }; diff --git a/packages/typescript-resolver-files-e2e/src/test-whitelisted/modules-typedefs-file-mode-mergedWhitelisted/types.generated.ts b/packages/typescript-resolver-files-e2e/src/test-whitelisted/modules-typedefs-file-mode-mergedWhitelisted/types.generated.ts index ed1117ac..69f5d892 100644 --- a/packages/typescript-resolver-files-e2e/src/test-whitelisted/modules-typedefs-file-mode-mergedWhitelisted/types.generated.ts +++ b/packages/typescript-resolver-files-e2e/src/test-whitelisted/modules-typedefs-file-mode-mergedWhitelisted/types.generated.ts @@ -267,6 +267,24 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + +/** Mapping of union parent types */ +export type ResolversUnionParentTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { Date: ResolverTypeWrapper; @@ -282,27 +300,27 @@ export type ResolversTypes = { String: ResolverTypeWrapper; StandardError: ResolverTypeWrapper; Topic: ResolverTypeWrapper; - TopicByIdPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicByIdResult']; + TopicByIdPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicByIdPayload'] + >; TopicByIdResult: ResolverTypeWrapper; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicCreateResult']; + TopicCreatePayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicCreatePayload'] + >; TopicCreateResult: ResolverTypeWrapper; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicEditResult']; + TopicEditPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicEditPayload'] + >; TopicEditResult: ResolverTypeWrapper; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicsCreatedByUserPayload'] + >; TopicsCreatedByUserResult: ResolverTypeWrapper; User: ResolverTypeWrapper; - UserPayload: ResolversTypes['StandardError'] | ResolversTypes['UserResult']; + UserPayload: ResolverTypeWrapper; UserResult: ResolverTypeWrapper; Boolean: ResolverTypeWrapper; }; @@ -321,29 +339,19 @@ export type ResolversParentTypes = { String: Scalars['String']; StandardError: StandardError; Topic: Topic; - TopicByIdPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicByIdResult']; + TopicByIdPayload: ResolversUnionParentTypes['TopicByIdPayload']; TopicByIdResult: TopicByIdResult; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicCreateResult']; + TopicCreatePayload: ResolversUnionParentTypes['TopicCreatePayload']; TopicCreateResult: TopicCreateResult; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicEditResult']; + TopicEditPayload: ResolversUnionParentTypes['TopicEditPayload']; TopicEditResult: TopicEditResult; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolversUnionParentTypes['TopicsCreatedByUserPayload']; TopicsCreatedByUserResult: TopicsCreatedByUserResult; User: User; - UserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['UserResult']; + UserPayload: ResolversUnionParentTypes['UserPayload']; UserResult: UserResult; Boolean: Scalars['Boolean']; }; diff --git a/packages/typescript-resolver-files-e2e/src/test-whitelisted/modules/types.generated.ts b/packages/typescript-resolver-files-e2e/src/test-whitelisted/modules/types.generated.ts index ed1117ac..69f5d892 100644 --- a/packages/typescript-resolver-files-e2e/src/test-whitelisted/modules/types.generated.ts +++ b/packages/typescript-resolver-files-e2e/src/test-whitelisted/modules/types.generated.ts @@ -267,6 +267,24 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + +/** Mapping of union parent types */ +export type ResolversUnionParentTypes = { + TopicByIdPayload: StandardError | TopicByIdResult; + TopicCreatePayload: StandardError | TopicCreateResult; + TopicEditPayload: StandardError | TopicEditResult; + TopicsCreatedByUserPayload: StandardError | TopicsCreatedByUserResult; + UserPayload: StandardError | UserResult; +}; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { Date: ResolverTypeWrapper; @@ -282,27 +300,27 @@ export type ResolversTypes = { String: ResolverTypeWrapper; StandardError: ResolverTypeWrapper; Topic: ResolverTypeWrapper; - TopicByIdPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicByIdResult']; + TopicByIdPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicByIdPayload'] + >; TopicByIdResult: ResolverTypeWrapper; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicCreateResult']; + TopicCreatePayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicCreatePayload'] + >; TopicCreateResult: ResolverTypeWrapper; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicEditResult']; + TopicEditPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicEditPayload'] + >; TopicEditResult: ResolverTypeWrapper; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversTypes['StandardError'] - | ResolversTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolverTypeWrapper< + ResolversUnionTypes['TopicsCreatedByUserPayload'] + >; TopicsCreatedByUserResult: ResolverTypeWrapper; User: ResolverTypeWrapper; - UserPayload: ResolversTypes['StandardError'] | ResolversTypes['UserResult']; + UserPayload: ResolverTypeWrapper; UserResult: ResolverTypeWrapper; Boolean: ResolverTypeWrapper; }; @@ -321,29 +339,19 @@ export type ResolversParentTypes = { String: Scalars['String']; StandardError: StandardError; Topic: Topic; - TopicByIdPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicByIdResult']; + TopicByIdPayload: ResolversUnionParentTypes['TopicByIdPayload']; TopicByIdResult: TopicByIdResult; TopicCreateInput: TopicCreateInput; - TopicCreatePayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicCreateResult']; + TopicCreatePayload: ResolversUnionParentTypes['TopicCreatePayload']; TopicCreateResult: TopicCreateResult; TopicEditInput: TopicEditInput; - TopicEditPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicEditResult']; + TopicEditPayload: ResolversUnionParentTypes['TopicEditPayload']; TopicEditResult: TopicEditResult; TopicsCreatedByUserInput: TopicsCreatedByUserInput; - TopicsCreatedByUserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['TopicsCreatedByUserResult']; + TopicsCreatedByUserPayload: ResolversUnionParentTypes['TopicsCreatedByUserPayload']; TopicsCreatedByUserResult: TopicsCreatedByUserResult; User: User; - UserPayload: - | ResolversParentTypes['StandardError'] - | ResolversParentTypes['UserResult']; + UserPayload: ResolversUnionParentTypes['UserPayload']; UserResult: UserResult; Boolean: Scalars['Boolean']; }; diff --git a/packages/typescript-resolver-files/README.md b/packages/typescript-resolver-files/README.md index 0013d770..2154a347 100644 --- a/packages/typescript-resolver-files/README.md +++ b/packages/typescript-resolver-files/README.md @@ -2,7 +2,7 @@ This [GraphQL Code Generator](https://www.the-guild.dev/graphql/codegen) plugin creates resolvers given GraphQL schema. -This relies on types generated from [typescript](https://the-guild.dev/graphql/codegen/plugins/typescript/typescript) and [@graphql-codegen/typescript-resolvers](https://the-guild.dev/graphql/codegen/plugins/typescript/typescript-resolvers) plugins. +This relies on types generated from [@graphql-codegen/typescript](https://the-guild.dev/graphql/codegen/plugins/typescript/typescript) and [@graphql-codegen/typescript-resolvers](https://the-guild.dev/graphql/codegen/plugins/typescript/typescript-resolvers) plugins. ```bash yarn add -D @graphql-codegen/cli @eddeee888/gcg-typescript-resolver-files @@ -21,13 +21,15 @@ yarn add graphql-scalars ### Setup +#### Files + ```graphql -# src/graphql/modules/base/schema.graphqls +# src/schema/base/schema.graphql type Query ``` ```graphql -# src/graphql/modules/user/schema.graphqls +# src/schema/user/schema.graphql extend type Query { user(id: ID!): User } @@ -44,7 +46,7 @@ type Address { ``` ````ts -// src/graphql/modules/user/schema.mappers.graphqls +// src/schema/user/schema.mappers.ts // Exporting the following Mapper interfaces and types is the equivalent of this codegen config: // ```yml @@ -62,24 +64,41 @@ export interface UserMapper { } ```` +#### Codegen Config + +```ts +// codegen.ts +import { defineConfig } from '@eddeee888/gcg-typescript-resolver-files'; +const config: CodegenConfig = { + schema: '**/schema.graphql', + generates: { + 'src/schema': defineConfig(), + }, +}; +export default config; +``` + +OR + ```yml # codegen.yml -schema: '**/*.graphqls' +schema: '**/*.graphql' generates: - src/graphql/modules: + src/schema: preset: '@eddeee888/gcg-typescript-resolver-files' + watchPattern: '**/*.mappers.ts' ``` ### Result Running codegen will generate the following files: -- `src/graphql/modules/user/resolvers/Query/user.ts` -- `src/graphql/modules/user/resolvers/User.ts` -- `src/graphql/modules/user/resolvers/Address.ts` -- `src/graphql/modules/resolvers.generated.ts` -- `src/graphql/modules/typeDefs.generated.ts` -- `src/graphql/modules/types.generated.ts` +- `src/schema/user/resolvers/Query/user.ts` +- `src/schema/user/resolvers/User.ts` +- `src/schema/user/resolvers/Address.ts` +- `src/schema/resolvers.generated.ts` +- `src/schema/typeDefs.generated.ts` +- `src/schema/types.generated.ts` ## Config Options @@ -200,9 +219,9 @@ Custom preset config can be set using the `presetConfig` option: ```yml # codegen.yml -schema: '**/*.graphqls' +schema: '**/*.graphql' generates: - src/graphql/modules: + src/schema: preset: '@eddeee888/gcg-typescript-resolver-files' presetConfig: mode: 'modules' diff --git a/packages/typescript-resolver-files/package.json b/packages/typescript-resolver-files/package.json index 2c913ffd..b3b0864f 100644 --- a/packages/typescript-resolver-files/package.json +++ b/packages/typescript-resolver-files/package.json @@ -28,9 +28,9 @@ }, "dependencies": { "@graphql-codegen/add": "^4.0.0", - "@graphql-codegen/plugin-helpers": "^4.0.0", - "@graphql-codegen/typescript": "^3.0.0", - "@graphql-codegen/typescript-resolvers": "^3.0.0", + "@graphql-codegen/plugin-helpers": "^4.2.0", + "@graphql-codegen/typescript": "^3.0.3", + "@graphql-codegen/typescript-resolvers": "^3.2.0", "graphql-scalars": "^1.20.1", "ts-morph": "^18.0.0" }, diff --git a/packages/typescript-resolver-files/src/defineConfig.test.ts b/packages/typescript-resolver-files/src/defineConfig.test.ts index 06bd4dab..1d46e2c4 100644 --- a/packages/typescript-resolver-files/src/defineConfig.test.ts +++ b/packages/typescript-resolver-files/src/defineConfig.test.ts @@ -2,14 +2,21 @@ import { defineConfig } from './defineConfig'; import { preset as defaultPreset } from './preset'; describe('defineConfig()', () => { - it('uses preset correctly', () => { - const { preset } = defineConfig(); + it('returns default values correctly', () => { + const { preset, presetConfig, watchPattern } = defineConfig(); expect(preset).toBe(defaultPreset); + expect(presetConfig).toEqual({}); + expect(watchPattern).toEqual(['**/*.mappers.ts']); }); - it('returns empty object as default presetConfig', () => { - const { presetConfig } = defineConfig(); + it('returns default values correctly with baseOutputDir', () => { + const { preset, presetConfig, watchPattern } = defineConfig( + {}, + { baseOutputDir: 'src/schema' } + ); + expect(preset).toBe(defaultPreset); expect(presetConfig).toEqual({}); + expect(watchPattern).toEqual(['src/schema/**/*.mappers.ts']); }); it('returns presetConfig with declared config', () => { @@ -28,4 +35,14 @@ describe('defineConfig()', () => { }, }); }); + + it('returns updated watchPattern if custom presetConfig.mappersFileExtension is used', () => { + const { presetConfig, watchPattern } = defineConfig({ + mappersFileExtension: '.model.ts', + }); + expect(presetConfig).toEqual({ + mappersFileExtension: '.model.ts', + }); + expect(watchPattern).toEqual(['**/*.model.ts']); + }); }); diff --git a/packages/typescript-resolver-files/src/defineConfig.ts b/packages/typescript-resolver-files/src/defineConfig.ts index 575e840d..0bd8e7c5 100644 --- a/packages/typescript-resolver-files/src/defineConfig.ts +++ b/packages/typescript-resolver-files/src/defineConfig.ts @@ -1,12 +1,28 @@ +import * as path from 'path'; import type { Types } from '@graphql-codegen/plugin-helpers'; import type { TypedPresetConfig } from './validatePresetConfig'; import { preset } from './preset'; export const defineConfig = ( - presetConfig: TypedPresetConfig = {} -): Pick => { + presetConfig: TypedPresetConfig = {}, + context: { baseOutputDir: string } = { baseOutputDir: '' } +): Pick => { + const { baseOutputDir } = context; + + const mappersFileExtension = + presetConfig.mappersFileExtension || '.mappers.ts'; + + const watchPattern: string[] = []; + const mapperWatchPattern = path.posix.join( + baseOutputDir, + '**', + `*${mappersFileExtension}` + ); + watchPattern.push(mapperWatchPattern); + return { preset, presetConfig, + watchPattern, }; }; diff --git a/yarn.lock b/yarn.lock index f7121bf4..6b91c4f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1541,15 +1541,6 @@ lodash "~4.17.0" tslib "~2.4.0" -"@graphql-codegen/schema-ast@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-3.0.0.tgz#3311a58184f885853d33d8272c527ff5bdf3023b" - integrity sha512-5gC8nNk/bxufS2LBSpaPExRgn6eNo8LQdtwDtwfM9XGEzt/F6rIBQoyOmqqwkiBmgu1PHHH8kLZMBYvYB1x5DA== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.0.0" - "@graphql-tools/utils" "^9.0.0" - tslib "~2.4.0" - "@graphql-codegen/schema-ast@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-3.0.1.tgz#37b458bb57b95715a9eb4259341c856dae2a461d" @@ -1559,7 +1550,7 @@ "@graphql-tools/utils" "^9.0.0" tslib "~2.5.0" -"@graphql-codegen/typescript-resolvers@3.2.0", "@graphql-codegen/typescript-resolvers@^3.0.0": +"@graphql-codegen/typescript-resolvers@3.2.0", "@graphql-codegen/typescript-resolvers@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-3.2.0.tgz#d4e7892208d9774059610753003c6a5d4c543b01" integrity sha512-119zDHVb/DYuPW76VYRwYAVRFABHpMN0OZgXe/g2PIHlb/Vlfof4TLjrKkRM7iBFbZPWGL92jqiI8hWFHhpqdg== @@ -1571,18 +1562,7 @@ auto-bind "~4.0.0" tslib "~2.5.0" -"@graphql-codegen/typescript@3.0.0", "@graphql-codegen/typescript@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-3.0.0.tgz#473dde1646540039bca5db4b6daf174d13af0ce3" - integrity sha512-FQWyuIUy1y+fxb9+EZfvdBHBQpYExlIBHV5sg2WGNCsyVyCqBTl0mO8icyOtsQPVg6YFMFe8JJO69vQbwHma5w== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.0.0" - "@graphql-codegen/schema-ast" "^3.0.0" - "@graphql-codegen/visitor-plugin-common" "3.0.0" - auto-bind "~4.0.0" - tslib "~2.4.0" - -"@graphql-codegen/typescript@^3.0.3": +"@graphql-codegen/typescript@3.0.3", "@graphql-codegen/typescript@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-3.0.3.tgz#3732e2072ba27970006db14b22d412ac4c943628" integrity sha512-oVV4/RPs3Lmr2XqywlNDmLhNBCIhefA8rYcuxoWcnd/WRc6GNRm1b2NOIzDhhF4xriVluMyk3QQVRepkdj9enw== @@ -1593,22 +1573,6 @@ auto-bind "~4.0.0" tslib "~2.5.0" -"@graphql-codegen/visitor-plugin-common@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-3.0.0.tgz#527185eb3b1b06739702084bc6263713e167a166" - integrity sha512-ZoNlCmmkGClB137SpJT9og/nkihLN7Z4Ynl9Ir3OlbDuI20dbpyXsclpr9QGLcxEcfQeVfhGw9CooW7wZJJ8LA== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.0.0" - "@graphql-tools/optimize" "^1.3.0" - "@graphql-tools/relay-operation-optimizer" "^6.5.0" - "@graphql-tools/utils" "^9.0.0" - auto-bind "~4.0.0" - change-case-all "1.0.15" - dependency-graph "^0.11.0" - graphql-tag "^2.11.0" - parse-filepath "^1.0.2" - tslib "~2.4.0" - "@graphql-codegen/visitor-plugin-common@3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-3.1.0.tgz#93172d64440b103edfe8b63ea3ac8842a5277a54"