From f5475de67e5b9491286ddf2ba038df523f63cd05 Mon Sep 17 00:00:00 2001 From: Jan Michael VIncent Trinidad Date: Mon, 5 Jul 2021 23:31:45 +0400 Subject: [PATCH 1/2] feat: derived types from function --- .../templates/typeTypeResolvers.spec.handlebars | 6 +++--- .../templates/typeTypeResolversSpecWrapper.handlebars | 10 +++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/generate/templates/typeTypeResolvers.spec.handlebars b/src/generate/templates/typeTypeResolvers.spec.handlebars index 49fd6793..a5157056 100644 --- a/src/generate/templates/typeTypeResolvers.spec.handlebars +++ b/src/generate/templates/typeTypeResolvers.spec.handlebars @@ -1,14 +1,14 @@ import td from "testdouble"; -import { GqlContext, ParentType, test{{typeName}}{{capitalizedFieldName}} {{#if hasArguments}},{{pascalCasedArgName}}{{/if}} } from "{{generatedPrefix}}/graphql/helpers/{{typeName}}{{capitalizedFieldName}}SpecWrapper" +import { GqlContext, ParentType, test{{typeName}}{{capitalizedFieldName}} {{#if hasArguments}},ArgsType{{/if}} } from "{{generatedPrefix}}/graphql/helpers/{{typeName}}{{capitalizedFieldName}}SpecWrapper" test("{{typeName}}{{capitalizedFieldName}}", async () => { const context = td.object(); // td.when(context.{{moduleName}}Repository.findOne()).thenResolve() // const parent: ParentType = {} {{#if hasArguments}} - // const variables: {{pascalCasedArgName}} = {} + // const args: ArgsType = {} {{/if}} - // const result = await test{{typeName}}{{capitalizedFieldName}}(parent, {{#if hasArguments}}variables,{{/if}} context); + // const result = await test{{typeName}}{{capitalizedFieldName}}(parent, {{#if hasArguments}}args,{{/if}} context); }); diff --git a/src/generate/templates/typeTypeResolversSpecWrapper.handlebars b/src/generate/templates/typeTypeResolversSpecWrapper.handlebars index 3e6917ef..8fb375a0 100644 --- a/src/generate/templates/typeTypeResolversSpecWrapper.handlebars +++ b/src/generate/templates/typeTypeResolversSpecWrapper.handlebars @@ -2,10 +2,14 @@ import { GraphQLResolveInfo } from 'graphql' import type { GqlContext, ResolversParentTypes, {{#if hasArguments}}{{pascalCasedArgName}}{{/if}} } from "{{generatedPrefix}}/graphql/types"; import { {{typeName}}{{capitalizedFieldName}} } from "{{appPrefix}}/{{graphqlFileRootPath}}types/{{typeName}}{{capitalizedFieldName}}"; +type Params = Parameters> {{#if resolveReferenceType}}type ParentType = Parameters>[0];{{else}} - type ParentType = ResolversParentTypes["{{typeName}}"] +type ParentType = Params[0] +{{/if}} +{{#if hasArguments}} +type ArgsType = Params[1] {{/if}} - 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) + 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) - export type {GqlContext, ParentType, ResolversParentTypes {{#if hasArguments}},{{pascalCasedArgName}}{{/if}} } + export type {GqlContext, ParentType, ResolversParentTypes {{#if hasArguments}}, ArgsType, {{pascalCasedArgName}}{{/if}} } From 158d3baf862e18f9b323b3dcd2c36902fe9680ff Mon Sep 17 00:00:00 2001 From: JMV Trinidad Date: Mon, 26 Sep 2022 21:06:07 +0400 Subject: [PATCH 2/2] feat: support for v2 of graphql codegen --- package.json | 12 ++++++------ .../runtime-config-helpers/getCodegenConfig.js | 9 ++++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 9e7ef0a7..497e5883 100644 --- a/package.json +++ b/package.json @@ -8,16 +8,16 @@ }, "bugs": "https://github.com/xolvio/chimp/issues", "dependencies": { - "@graphql-tools/graphql-file-loader": "^6.2.5", - "@graphql-tools/load": "^6.2.5", - "@graphql-tools/merge": "^6.2.5", + "@graphql-tools/graphql-file-loader": "^7.5.5", + "@graphql-tools/load": "^7.7.7", + "@graphql-tools/merge": "^8.3.6", "@oclif/command": "^1", "@oclif/config": "^1", "@oclif/plugin-help": "^3", "debug": "^4.3.1", "enquirer": "^2.3.6", "find-package-json": "^1.2.0", - "graphql": "15.5.1", + "graphql": "16.6.0", "graphql-tag": "^2.10.3", "handlebars": "^4.0.12", "listr2": "3.3.3", @@ -33,7 +33,7 @@ "@types/node": "^14.14.22", "chai": "^4.2.0", "copyfiles": "^2.4.1", - "eslint": "^5.13", + "eslint": "^7.32.0", "eslint-config-oclif": "^3.1", "eslint-config-oclif-typescript": "^0.1", "eslint-config-prettier": "^7.2.0", @@ -47,7 +47,7 @@ "testdouble-jest": "^2.0.0", "ts-jest": "^26.4.4", "ts-node": "^8", - "typescript": "^3.3", + "typescript": "4.4.4", "wait-on": "^5.2.1" }, "engines": { diff --git a/src/generate/runtime-config-helpers/getCodegenConfig.js b/src/generate/runtime-config-helpers/getCodegenConfig.js index cf71dcd9..a3c90856 100644 --- a/src/generate/runtime-config-helpers/getCodegenConfig.js +++ b/src/generate/runtime-config-helpers/getCodegenConfig.js @@ -59,6 +59,7 @@ module.exports = function ({ contextType } = {}) { objectIdType: 'string', federation: true, mappers, + makeResolverTypeCallable: true, scalars: { Upload: 'Promise', }, @@ -68,16 +69,18 @@ module.exports = function ({ contextType } = {}) { 'typescript-resolvers', 'typescript-operations', 'chimp-graphql-codegen-plugin', - { add: 'export {GqlContext};' }, + { add: { content: 'export {GqlContext};'} }, { - add: ` + add: { + content: ` import { ReadStream } from "fs-capacitor"; interface GraphQLFileUpload { filename: string; mimetype: string; encoding: string; createReadStream(options?:{encoding?: string, highWaterMark?: number}): ReadStream; -}`, +}` + }, }, ], },