From c1d01f3dd19b35dae4d4838af7f27490655549c6 Mon Sep 17 00:00:00 2001 From: Arda TANRIKULU Date: Mon, 31 Oct 2022 13:47:34 +0300 Subject: [PATCH] enhance(wrap): avoid calling MapLeafValues.transformRequest if nothing is transformed during transformSchema --- .changeset/thick-panthers-carry.md | 5 +++++ packages/wrap/src/transforms/TransformEnumValues.ts | 8 ++++++++ 2 files changed, 13 insertions(+) create mode 100644 .changeset/thick-panthers-carry.md diff --git a/.changeset/thick-panthers-carry.md b/.changeset/thick-panthers-carry.md new file mode 100644 index 00000000000..8685e1815f8 --- /dev/null +++ b/.changeset/thick-panthers-carry.md @@ -0,0 +1,5 @@ +--- +'@graphql-tools/wrap': patch +--- + +Do not transform request if there is no value transformed during the schema transformation diff --git a/packages/wrap/src/transforms/TransformEnumValues.ts b/packages/wrap/src/transforms/TransformEnumValues.ts index 6146d2dd229..b8ef5f6e7a0 100644 --- a/packages/wrap/src/transforms/TransformEnumValues.ts +++ b/packages/wrap/src/transforms/TransformEnumValues.ts @@ -18,6 +18,7 @@ export default class TransformEnumValues> private transformedSchema: GraphQLSchema | undefined; private mapping: Record>; private reverseMapping: Record>; + private noTransformation = true; constructor( enumValueTransformer: EnumValueTransformer, @@ -50,6 +51,9 @@ export default class TransformEnumValues> delegationContext: DelegationContext, transformationContext: TransformEnumValuesTransformationContext ): ExecutionRequest { + if (this.noTransformation) { + return originalRequest; + } return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext); } @@ -58,6 +62,9 @@ export default class TransformEnumValues> delegationContext: DelegationContext, transformationContext: TransformEnumValuesTransformationContext ) { + if (this.noTransformation) { + return originalResult; + } return this.transformer.transformResult(originalResult, delegationContext, transformationContext); } @@ -77,6 +84,7 @@ export default class TransformEnumValues> } this.mapping[typeName][externalValue] = newExternalValue; this.reverseMapping[typeName][newExternalValue] = externalValue; + this.noTransformation = false; } } return transformedEnumValue;