Skip to content

Commit f5475de

Browse files
committed
feat: derived types from function
1 parent 7ecbf2a commit f5475de

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import td from "testdouble";
2-
import { GqlContext, ParentType, test{{typeName}}{{capitalizedFieldName}} {{#if hasArguments}},{{pascalCasedArgName}}{{/if}} } from "{{generatedPrefix}}/graphql/helpers/{{typeName}}{{capitalizedFieldName}}SpecWrapper"
2+
import { GqlContext, ParentType, test{{typeName}}{{capitalizedFieldName}} {{#if hasArguments}},ArgsType{{/if}} } from "{{generatedPrefix}}/graphql/helpers/{{typeName}}{{capitalizedFieldName}}SpecWrapper"
33

44
test("{{typeName}}{{capitalizedFieldName}}", async () => {
55
const context = td.object<GqlContext>();
66
// td.when(context.{{moduleName}}Repository.findOne()).thenResolve()
77
// const parent: ParentType = {}
88
{{#if hasArguments}}
9-
// const variables: {{pascalCasedArgName}} = {}
9+
// const args: ArgsType = {}
1010
{{/if}}
1111

12-
// const result = await test{{typeName}}{{capitalizedFieldName}}(parent, {{#if hasArguments}}variables,{{/if}} context);
12+
// const result = await test{{typeName}}{{capitalizedFieldName}}(parent, {{#if hasArguments}}args,{{/if}} context);
1313

1414
});

src/generate/templates/typeTypeResolversSpecWrapper.handlebars

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@ import { GraphQLResolveInfo } from 'graphql'
22
import type { GqlContext, ResolversParentTypes, {{#if hasArguments}}{{pascalCasedArgName}}{{/if}} } from "{{generatedPrefix}}/graphql/types";
33
import { {{typeName}}{{capitalizedFieldName}} } from "{{appPrefix}}/{{graphqlFileRootPath}}types/{{typeName}}{{capitalizedFieldName}}";
44

5+
type Params = Parameters<NonNullable<typeof {{typeName}}{{capitalizedFieldName}}>>
56
{{#if resolveReferenceType}}type ParentType = Parameters<NonNullable<typeof {{typeName}}{{capitalizedFieldName}}>>[0];{{else}}
6-
type ParentType = ResolversParentTypes["{{typeName}}"]
7+
type ParentType = Params[0]
8+
{{/if}}
9+
{{#if hasArguments}}
10+
type ArgsType = Params[1]
711
{{/if}}
812

9-
export const test{{typeName}}{{capitalizedFieldName}} = (parent: ParentType, {{#if hasArguments}}variables: {{pascalCasedArgName}},{{/if}} context: GqlContext) => {{typeName}}{{capitalizedFieldName}}?.({...parent, {{#if isFederatedAndExternal}}__typename: '{{typeName}}'{{/if}} }, {{#unless resolveReferenceType}}{{#if hasArguments}}variables{{else}} {} {{/if}},{{/unless}} context, {} as GraphQLResolveInfo)
13+
export const test{{typeName}}{{capitalizedFieldName}} = (parent: ParentType, {{#if hasArguments}}args: ArgsType,{{/if}} context: GqlContext) => {{typeName}}{{capitalizedFieldName}}?.({...parent, {{#if isFederatedAndExternal}}__typename: '{{typeName}}'{{/if}} }, {{#unless resolveReferenceType}}{{#if hasArguments}}args{{else}} {} {{/if}},{{/unless}} context, {} as GraphQLResolveInfo)
1014

11-
export type {GqlContext, ParentType, ResolversParentTypes {{#if hasArguments}},{{pascalCasedArgName}}{{/if}} }
15+
export type {GqlContext, ParentType, ResolversParentTypes {{#if hasArguments}}, ArgsType, {{pascalCasedArgName}}{{/if}} }

0 commit comments

Comments
 (0)