From 6182b1a8ae98fdcd628f39d88eac37008c91c76f Mon Sep 17 00:00:00 2001 From: Yaacov Rydzinski Date: Wed, 3 Jun 2020 22:37:43 -0400 Subject: [PATCH 1/4] initial attempt --- .../src/transforms/TransformInputFields.ts | 194 ++++++++++++++++++ packages/wrap/src/types.ts | 27 ++- packages/wrap/tests/transforms.test.ts | 71 +++++++ 3 files changed, 291 insertions(+), 1 deletion(-) create mode 100644 packages/wrap/src/transforms/TransformInputFields.ts diff --git a/packages/wrap/src/transforms/TransformInputFields.ts b/packages/wrap/src/transforms/TransformInputFields.ts new file mode 100644 index 00000000000..fc2232d0b1d --- /dev/null +++ b/packages/wrap/src/transforms/TransformInputFields.ts @@ -0,0 +1,194 @@ +import { + GraphQLSchema, + GraphQLType, + DocumentNode, + TypeInfo, + visit, + visitWithTypeInfo, + Kind, + FragmentDefinitionNode, + GraphQLInputObjectType, + ObjectValueNode, + ObjectFieldNode, +} from 'graphql'; + +import { Transform, Request, MapperKind, mapSchema } from '@graphql-tools/utils'; +import { InputFieldTransformer, InputFieldNodeTransformer, InputObjectNodeTransformer } from '../types'; +import { DelegationContext } from 'packages/delegate/src'; + +export default class TransformInputFields implements Transform { + private readonly inputFieldTransformer: InputFieldTransformer; + private readonly inputFieldNodeTransformer: InputFieldNodeTransformer; + private readonly inputObjectNodeTransformer: InputObjectNodeTransformer; + private transformedSchema: GraphQLSchema; + private mapping: Record>; + + constructor( + inputFieldTransformer: InputFieldTransformer, + inputFieldNodeTransformer?: InputFieldNodeTransformer, + inputObjectNodeTransformer?: InputObjectNodeTransformer + ) { + this.inputFieldTransformer = inputFieldTransformer; + this.inputFieldNodeTransformer = inputFieldNodeTransformer; + this.inputObjectNodeTransformer = inputObjectNodeTransformer; + this.mapping = {}; + } + + public transformSchema(originalSchema: GraphQLSchema): GraphQLSchema { + this.transformedSchema = mapSchema(originalSchema, { + [MapperKind.INPUT_OBJECT_TYPE]: (type: GraphQLInputObjectType) => + this.transformFields(type, this.inputFieldTransformer), + }); + + return this.transformedSchema; + } + + public transformRequest(originalRequest: Request, delegationContext: DelegationContext): Request { + const fragments = Object.create(null); + originalRequest.document.definitions + .filter(def => def.kind === Kind.FRAGMENT_DEFINITION) + .forEach(def => { + fragments[(def as FragmentDefinitionNode).name.value] = def; + }); + const document = this.transformDocument( + originalRequest.document, + this.mapping, + this.inputFieldNodeTransformer, + this.inputObjectNodeTransformer, + delegationContext, + originalRequest + ); + return { + ...originalRequest, + document, + }; + } + + private transformFields(type: GraphQLInputObjectType, inputFieldTransformer: InputFieldTransformer): any { + const config = type.toConfig(); + + const originalInputFieldConfigMap = config.fields; + const newInputFieldConfigMap = {}; + + Object.keys(originalInputFieldConfigMap).forEach(fieldName => { + const originalInputFieldConfig = originalInputFieldConfigMap[fieldName]; + const transformedField = inputFieldTransformer(type.name, fieldName, originalInputFieldConfig); + + if (transformedField === undefined) { + newInputFieldConfigMap[fieldName] = originalInputFieldConfig; + } else if (Array.isArray(transformedField)) { + const newFieldName = transformedField[0]; + const newFieldConfig = transformedField[1]; + newInputFieldConfigMap[newFieldName] = newFieldConfig; + + if (newFieldName !== fieldName) { + const typeName = type.name; + if (!(typeName in this.mapping)) { + this.mapping[typeName] = {}; + } + this.mapping[typeName][newFieldName] = fieldName; + } + } else if (transformedField != null) { + newInputFieldConfigMap[fieldName] = transformedField; + } + }); + + if (!Object.keys(newInputFieldConfigMap).length) { + return null; + } + + return new GraphQLInputObjectType({ + ...type.toConfig(), + fields: newInputFieldConfigMap, + }); + } + + private transformDocument( + document: DocumentNode, + mapping: Record>, + inputFieldNodeTransformer: InputFieldNodeTransformer, + inputObjectNodeTransformer: InputObjectNodeTransformer, + delegationContext: DelegationContext, + request: Request + ): DocumentNode { + const typeInfo = new TypeInfo(this.transformedSchema); + const newDocument: DocumentNode = visit( + document, + visitWithTypeInfo(typeInfo, { + leave: { + [Kind.OBJECT]: (node: ObjectValueNode): ObjectValueNode => { + const parentType: GraphQLType = typeInfo.getInputType() as GraphQLInputObjectType; + if (parentType != null) { + const parentTypeName = parentType.name; + const newInputFields: Array = []; + + node.fields.forEach(inputField => { + const newName = inputField.name.value; + + const transformedInputField = + inputFieldNodeTransformer != null + ? inputFieldNodeTransformer(parentTypeName, newName, inputField, delegationContext, request) + : inputField; + + if (Array.isArray(transformedInputField)) { + transformedInputField.forEach(individualTransformedInputField => { + const typeMapping = mapping[parentTypeName]; + if (typeMapping == null) { + newInputFields.push(individualTransformedInputField); + return; + } + + const oldName = typeMapping[newName]; + if (oldName == null) { + newInputFields.push(individualTransformedInputField); + return; + } + + newInputFields.push({ + ...individualTransformedInputField, + name: { + ...individualTransformedInputField.name, + value: oldName, + }, + }); + }); + return; + } + + const typeMapping = mapping[parentTypeName]; + if (typeMapping == null) { + newInputFields.push(transformedInputField); + return; + } + + const oldName = typeMapping[newName]; + if (oldName == null) { + newInputFields.push(transformedInputField); + return; + } + + newInputFields.push({ + ...transformedInputField, + name: { + ...transformedInputField.name, + value: oldName, + }, + }); + }); + + const newNode = { + ...node, + fields: newInputFields, + }; + + return inputObjectNodeTransformer != null + ? inputObjectNodeTransformer(parentTypeName, newNode, delegationContext, request) + : newNode; + } + }, + }, + }) + ); + return newDocument; + } +} diff --git a/packages/wrap/src/types.ts b/packages/wrap/src/types.ts index 2eea98ea14a..1cc7f29bdc5 100644 --- a/packages/wrap/src/types.ts +++ b/packages/wrap/src/types.ts @@ -2,12 +2,16 @@ import { GraphQLSchema, GraphQLFieldResolver, BuildSchemaOptions, + GraphQLInputFieldConfig, GraphQLFieldConfig, FieldNode, FragmentDefinitionNode, SelectionNode, + ObjectFieldNode, + ObjectValueNode, } from 'graphql'; -import { Executor, Subscriber } from '@graphql-tools/delegate'; +import { Executor, Subscriber, DelegationContext } from '@graphql-tools/delegate'; +import { Request } from '@graphql-tools/utils'; export interface IMakeRemoteExecutableSchemaOptions { schema: GraphQLSchema | string; @@ -17,6 +21,27 @@ export interface IMakeRemoteExecutableSchemaOptions { buildSchemaOptions?: BuildSchemaOptions; } +export type InputFieldTransformer = ( + typeName: string, + fieldName: string, + inputFieldConfig: GraphQLInputFieldConfig +) => GraphQLInputFieldConfig | [string, GraphQLInputFieldConfig] | null | undefined; + +export type InputFieldNodeTransformer = ( + typeName: string, + fieldName: string, + inputFieldNode: ObjectFieldNode, + delegationContext: DelegationContext, + request: Request +) => ObjectFieldNode | Array; + +export type InputObjectNodeTransformer = ( + typeName: string, + inputObjectNode: ObjectValueNode, + delegationContext: DelegationContext, + request: Request +) => ObjectValueNode; + export type FieldTransformer = ( typeName: string, fieldName: string, diff --git a/packages/wrap/tests/transforms.test.ts b/packages/wrap/tests/transforms.test.ts index 66827f1584d..8600d408b7d 100644 --- a/packages/wrap/tests/transforms.test.ts +++ b/packages/wrap/tests/transforms.test.ts @@ -7,6 +7,8 @@ import { SelectionSetNode, print, parse, + GraphQLInputObjectType, + astFromValue, } from 'graphql'; import { makeExecutableSchema } from '@graphql-tools/schema'; @@ -35,6 +37,7 @@ import { } from '@graphql-tools/delegate'; import { propertySchema, bookingSchema } from './fixtures/schemas'; +import TransformInputFields from '../src/transforms/TransformInputFields'; function createError(message: string, extra?: T) { const error = new Error(message); @@ -1368,4 +1371,72 @@ describe('replaces field with processed fragment node', () => { }, }); }); + + describe('transform input type', () => { + test('it works', async () => { + const schema = makeExecutableSchema({ + typeDefs: ` + input InputObject { + field1: String + field2: String + } + + type OutputObject { + field1: String + field2: String + } + + type Query { + test(argument: InputObject): OutputObject + } + `, + resolvers: { + Query: { + test: (_root, args) => { + return args.argument; + } + } + } + }); + + const transformedSchema = wrapSchema(schema, [ + new TransformInputFields( + (typeName, fieldName) => { + if (typeName === 'InputObject' && fieldName === 'field2') { + return null; + } + }, + undefined, + (typeName, inputObjectNode) => { + if (typeName === 'InputObject') { + return { + ...inputObjectNode, + fields: [...inputObjectNode.fields, { + kind: Kind.OBJECT_FIELD, + name: { + kind: Kind.NAME, + value: 'field2', + }, + value: astFromValue('field2', (schema.getType('InputObject') as GraphQLInputObjectType).getFields()['field2'].type), + }], + }; + } + } + ) + ]); + + const query = `{ + test(argument: { + field1: "field1" + }) { + field1 + field2 + } + }`; + + const result = await graphql(transformedSchema, query); + expect(result.data.test.field1).toBe('field1'); + expect(result.data.test.field2).toBe('field2'); + }); + }); }); From 6f5f37d2c07c26ca98fa1a6053426971715d1633 Mon Sep 17 00:00:00 2001 From: Yaacov Rydzinski Date: Thu, 4 Jun 2020 06:10:08 -0400 Subject: [PATCH 2/4] add FilterInputObjectFields, RenameInputObjectFields closes #1058 --- packages/utils/src/Interfaces.ts | 6 ++ .../src/transforms/FilterInputObjectFields.ts | 28 ++++++++ .../src/transforms/RenameInputObjectFields.ts | 72 +++++++++++++++++++ packages/wrap/src/transforms/index.ts | 3 + packages/wrap/tests/transforms.test.ts | 71 ++++++++++++++---- 5 files changed, 168 insertions(+), 12 deletions(-) create mode 100644 packages/wrap/src/transforms/FilterInputObjectFields.ts create mode 100644 packages/wrap/src/transforms/RenameInputObjectFields.ts diff --git a/packages/utils/src/Interfaces.ts b/packages/utils/src/Interfaces.ts index c4be11147b5..a03fee5e7a6 100644 --- a/packages/utils/src/Interfaces.ts +++ b/packages/utils/src/Interfaces.ts @@ -158,6 +158,12 @@ export type FieldNodeMapper = ( export type FieldNodeMappers = Record>; +export type InputFieldFilter = ( + typeName?: string, + fieldName?: string, + inputFieldConfig?: GraphQLInputFieldConfig +) => boolean; + export type FieldFilter = ( typeName?: string, fieldName?: string, diff --git a/packages/wrap/src/transforms/FilterInputObjectFields.ts b/packages/wrap/src/transforms/FilterInputObjectFields.ts new file mode 100644 index 00000000000..a22476b0e5c --- /dev/null +++ b/packages/wrap/src/transforms/FilterInputObjectFields.ts @@ -0,0 +1,28 @@ +import { GraphQLSchema, GraphQLInputFieldConfig } from 'graphql'; + +import { Transform, Request, InputFieldFilter } from '@graphql-tools/utils'; + +import TransformInputFields from './TransformInputFields'; +import { DelegationContext } from 'packages/delegate/src'; +import { InputObjectNodeTransformer } from '../types'; + +export default class FilterInputObjectFields implements Transform { + private readonly transformer: TransformInputFields; + + constructor(filter: InputFieldFilter, inputObjectNodeTransformer: InputObjectNodeTransformer) { + this.transformer = new TransformInputFields( + (typeName: string, fieldName: string, inputFieldConfig: GraphQLInputFieldConfig) => + filter(typeName, fieldName, inputFieldConfig) ? undefined : null, + undefined, + inputObjectNodeTransformer + ); + } + + public transformSchema(originalSchema: GraphQLSchema): GraphQLSchema { + return this.transformer.transformSchema(originalSchema); + } + + public transformRequest(originalRequest: Request, delegationContext: DelegationContext): Request { + return this.transformer.transformRequest(originalRequest, delegationContext); + } +} diff --git a/packages/wrap/src/transforms/RenameInputObjectFields.ts b/packages/wrap/src/transforms/RenameInputObjectFields.ts new file mode 100644 index 00000000000..8034d007d18 --- /dev/null +++ b/packages/wrap/src/transforms/RenameInputObjectFields.ts @@ -0,0 +1,72 @@ +import { GraphQLSchema, GraphQLInputFieldConfig, ObjectFieldNode } from 'graphql'; + +import { Transform, Request, mapSchema, MapperKind } from '@graphql-tools/utils'; + +import TransformInputFields from './TransformInputFields'; +import { DelegationContext } from 'packages/delegate/src'; + +export default class RenameInputObjectFields implements Transform { + private readonly renamer: (typeName: string, fieldName: string, inputFieldConfig: GraphQLInputFieldConfig) => string; + private readonly transformer: TransformInputFields; + private reverseMap: Record>; + + constructor(renamer: (typeName: string, fieldName: string, inputFieldConfig: GraphQLInputFieldConfig) => string) { + this.renamer = renamer; + this.transformer = new TransformInputFields( + (typeName: string, inputFieldName: string, inputFieldConfig: GraphQLInputFieldConfig) => { + const newName = renamer(typeName, inputFieldName, inputFieldConfig); + if (newName !== undefined && newName !== inputFieldName) { + return [renamer(typeName, inputFieldName, inputFieldConfig), inputFieldConfig]; + } + }, + (typeName: string, inputFieldName: string, inputFieldNode: ObjectFieldNode) => { + if (!(typeName in this.reverseMap)) { + return inputFieldNode; + } + + const inputFieldNameMap = this.reverseMap[typeName]; + if (!(inputFieldName in inputFieldNameMap)) { + return inputFieldNode; + } + + return { + ...inputFieldNode, + name: { + ...inputFieldNode.name, + value: inputFieldNameMap[inputFieldName], + }, + }; + } + ); + this.reverseMap = Object.create(null); + } + + public transformSchema(originalSchema: GraphQLSchema): GraphQLSchema { + mapSchema(originalSchema, { + [MapperKind.INPUT_OBJECT_FIELD]: ( + inputFieldConfig: GraphQLInputFieldConfig, + fieldName: string, + typeName + ): undefined => { + const newName = this.renamer(typeName, fieldName, inputFieldConfig); + if (newName !== undefined && newName !== fieldName) { + if (this.reverseMap[typeName] == null) { + this.reverseMap[typeName] = Object.create(null); + } + this.reverseMap[typeName][newName] = fieldName; + } + return undefined; + }, + + [MapperKind.ROOT_OBJECT]() { + return undefined; + }, + }); + + return this.transformer.transformSchema(originalSchema); + } + + public transformRequest(originalRequest: Request, delegationContext: DelegationContext): Request { + return this.transformer.transformRequest(originalRequest, delegationContext); + } +} diff --git a/packages/wrap/src/transforms/index.ts b/packages/wrap/src/transforms/index.ts index 9f620acbc5e..5143b827f01 100644 --- a/packages/wrap/src/transforms/index.ts +++ b/packages/wrap/src/transforms/index.ts @@ -11,6 +11,9 @@ export { default as FilterObjectFields } from './FilterObjectFields'; export { default as TransformInterfaceFields } from './TransformInterfaceFields'; export { default as RenameInterfaceFields } from './RenameInterfaceFields'; export { default as FilterInterfaceFields } from './FilterInterfaceFields'; +export { default as TransformInputFields } from './TransformInputFields'; +export { default as RenameInputObjectFields } from './RenameInputObjectFields'; +export { default as FilterInputObjectFields } from './FilterInputObjectFields'; export { default as TransformQuery } from './TransformQuery'; export { default as ExtendSchema } from './ExtendSchema'; diff --git a/packages/wrap/tests/transforms.test.ts b/packages/wrap/tests/transforms.test.ts index 8600d408b7d..598dc74e54a 100644 --- a/packages/wrap/tests/transforms.test.ts +++ b/packages/wrap/tests/transforms.test.ts @@ -7,8 +7,8 @@ import { SelectionSetNode, print, parse, - GraphQLInputObjectType, astFromValue, + GraphQLString, } from 'graphql'; import { makeExecutableSchema } from '@graphql-tools/schema'; @@ -26,6 +26,8 @@ import { WrapQuery, ExtractField, TransformQuery, + FilterInputObjectFields, + RenameInputObjectFields, } from '@graphql-tools/wrap'; import { @@ -37,7 +39,6 @@ import { } from '@graphql-tools/delegate'; import { propertySchema, bookingSchema } from './fixtures/schemas'; -import TransformInputFields from '../src/transforms/TransformInputFields'; function createError(message: string, extra?: T) { const error = new Error(message); @@ -1372,8 +1373,8 @@ describe('replaces field with processed fragment node', () => { }); }); - describe('transform input type', () => { - test('it works', async () => { + describe('transform input object fields', () => { + test('filtering works', async () => { const schema = makeExecutableSchema({ typeDefs: ` input InputObject { @@ -1400,13 +1401,8 @@ describe('replaces field with processed fragment node', () => { }); const transformedSchema = wrapSchema(schema, [ - new TransformInputFields( - (typeName, fieldName) => { - if (typeName === 'InputObject' && fieldName === 'field2') { - return null; - } - }, - undefined, + new FilterInputObjectFields( + (typeName, fieldName) => (typeName !== 'InputObject' || fieldName !== 'field2'), (typeName, inputObjectNode) => { if (typeName === 'InputObject') { return { @@ -1417,7 +1413,7 @@ describe('replaces field with processed fragment node', () => { kind: Kind.NAME, value: 'field2', }, - value: astFromValue('field2', (schema.getType('InputObject') as GraphQLInputObjectType).getFields()['field2'].type), + value: astFromValue('field2', GraphQLString), }], }; } @@ -1439,4 +1435,55 @@ describe('replaces field with processed fragment node', () => { expect(result.data.test.field2).toBe('field2'); }); }); + + test('renaming works', async () => { + const schema = makeExecutableSchema({ + typeDefs: ` + input InputObject { + field1: String + field2: String + } + + type OutputObject { + field1: String + field2: String + } + + type Query { + test(argument: InputObject): OutputObject + } + `, + resolvers: { + Query: { + test: (_root, args) => { + return args.argument; + } + } + } + }); + + const transformedSchema = wrapSchema(schema, [ + new RenameInputObjectFields( + (typeName: string, fieldName: string) => { + if (typeName === 'InputObject' && fieldName === 'field2') { + return 'field3'; + } + }, + ) + ]); + + const query = `{ + test(argument: { + field1: "field1" + field3: "field2" + }) { + field1 + field2 + } + }`; + + const result = await graphql(transformedSchema, query); + expect(result.data.test.field1).toBe('field1'); + expect(result.data.test.field2).toBe('field2'); + }); }); From 4255d24d869bfcaaf32977cc8a6b72563584dfb9 Mon Sep 17 00:00:00 2001 From: Yaacov Rydzinski Date: Thu, 4 Jun 2020 06:24:51 -0400 Subject: [PATCH 3/4] supplying values for target schema is not required --- packages/wrap/src/transforms/FilterInputObjectFields.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wrap/src/transforms/FilterInputObjectFields.ts b/packages/wrap/src/transforms/FilterInputObjectFields.ts index a22476b0e5c..3806f4135fc 100644 --- a/packages/wrap/src/transforms/FilterInputObjectFields.ts +++ b/packages/wrap/src/transforms/FilterInputObjectFields.ts @@ -9,7 +9,7 @@ import { InputObjectNodeTransformer } from '../types'; export default class FilterInputObjectFields implements Transform { private readonly transformer: TransformInputFields; - constructor(filter: InputFieldFilter, inputObjectNodeTransformer: InputObjectNodeTransformer) { + constructor(filter: InputFieldFilter, inputObjectNodeTransformer?: InputObjectNodeTransformer) { this.transformer = new TransformInputFields( (typeName: string, fieldName: string, inputFieldConfig: GraphQLInputFieldConfig) => filter(typeName, fieldName, inputFieldConfig) ? undefined : null, From a972b7493c9b763feb943d76e7225aabd8e915ae Mon Sep 17 00:00:00 2001 From: Yaacov Rydzinski Date: Thu, 4 Jun 2020 06:34:32 -0400 Subject: [PATCH 4/4] Rename TransformInputFields to match other transformers TransformInputFields => TransformInputObjectFields --- packages/wrap/src/transforms/FilterInputObjectFields.ts | 6 +++--- packages/wrap/src/transforms/RenameInputObjectFields.ts | 6 +++--- ...ransformInputFields.ts => TransformInputObjectFields.ts} | 2 +- packages/wrap/src/transforms/index.ts | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) rename packages/wrap/src/transforms/{TransformInputFields.ts => TransformInputObjectFields.ts} (98%) diff --git a/packages/wrap/src/transforms/FilterInputObjectFields.ts b/packages/wrap/src/transforms/FilterInputObjectFields.ts index 3806f4135fc..e684d68642e 100644 --- a/packages/wrap/src/transforms/FilterInputObjectFields.ts +++ b/packages/wrap/src/transforms/FilterInputObjectFields.ts @@ -2,15 +2,15 @@ import { GraphQLSchema, GraphQLInputFieldConfig } from 'graphql'; import { Transform, Request, InputFieldFilter } from '@graphql-tools/utils'; -import TransformInputFields from './TransformInputFields'; +import TransformInputObjectFields from './TransformInputObjectFields'; import { DelegationContext } from 'packages/delegate/src'; import { InputObjectNodeTransformer } from '../types'; export default class FilterInputObjectFields implements Transform { - private readonly transformer: TransformInputFields; + private readonly transformer: TransformInputObjectFields; constructor(filter: InputFieldFilter, inputObjectNodeTransformer?: InputObjectNodeTransformer) { - this.transformer = new TransformInputFields( + this.transformer = new TransformInputObjectFields( (typeName: string, fieldName: string, inputFieldConfig: GraphQLInputFieldConfig) => filter(typeName, fieldName, inputFieldConfig) ? undefined : null, undefined, diff --git a/packages/wrap/src/transforms/RenameInputObjectFields.ts b/packages/wrap/src/transforms/RenameInputObjectFields.ts index 8034d007d18..287553ccb34 100644 --- a/packages/wrap/src/transforms/RenameInputObjectFields.ts +++ b/packages/wrap/src/transforms/RenameInputObjectFields.ts @@ -2,17 +2,17 @@ import { GraphQLSchema, GraphQLInputFieldConfig, ObjectFieldNode } from 'graphql import { Transform, Request, mapSchema, MapperKind } from '@graphql-tools/utils'; -import TransformInputFields from './TransformInputFields'; +import TransformInputObjectFields from './TransformInputObjectFields'; import { DelegationContext } from 'packages/delegate/src'; export default class RenameInputObjectFields implements Transform { private readonly renamer: (typeName: string, fieldName: string, inputFieldConfig: GraphQLInputFieldConfig) => string; - private readonly transformer: TransformInputFields; + private readonly transformer: TransformInputObjectFields; private reverseMap: Record>; constructor(renamer: (typeName: string, fieldName: string, inputFieldConfig: GraphQLInputFieldConfig) => string) { this.renamer = renamer; - this.transformer = new TransformInputFields( + this.transformer = new TransformInputObjectFields( (typeName: string, inputFieldName: string, inputFieldConfig: GraphQLInputFieldConfig) => { const newName = renamer(typeName, inputFieldName, inputFieldConfig); if (newName !== undefined && newName !== inputFieldName) { diff --git a/packages/wrap/src/transforms/TransformInputFields.ts b/packages/wrap/src/transforms/TransformInputObjectFields.ts similarity index 98% rename from packages/wrap/src/transforms/TransformInputFields.ts rename to packages/wrap/src/transforms/TransformInputObjectFields.ts index fc2232d0b1d..69f5e1286a1 100644 --- a/packages/wrap/src/transforms/TransformInputFields.ts +++ b/packages/wrap/src/transforms/TransformInputObjectFields.ts @@ -16,7 +16,7 @@ import { Transform, Request, MapperKind, mapSchema } from '@graphql-tools/utils' import { InputFieldTransformer, InputFieldNodeTransformer, InputObjectNodeTransformer } from '../types'; import { DelegationContext } from 'packages/delegate/src'; -export default class TransformInputFields implements Transform { +export default class TransformInputObjectFields implements Transform { private readonly inputFieldTransformer: InputFieldTransformer; private readonly inputFieldNodeTransformer: InputFieldNodeTransformer; private readonly inputObjectNodeTransformer: InputObjectNodeTransformer; diff --git a/packages/wrap/src/transforms/index.ts b/packages/wrap/src/transforms/index.ts index 5143b827f01..09cb95d9484 100644 --- a/packages/wrap/src/transforms/index.ts +++ b/packages/wrap/src/transforms/index.ts @@ -11,7 +11,7 @@ export { default as FilterObjectFields } from './FilterObjectFields'; export { default as TransformInterfaceFields } from './TransformInterfaceFields'; export { default as RenameInterfaceFields } from './RenameInterfaceFields'; export { default as FilterInterfaceFields } from './FilterInterfaceFields'; -export { default as TransformInputFields } from './TransformInputFields'; +export { default as TransformInputObjectFields } from './TransformInputObjectFields'; export { default as RenameInputObjectFields } from './RenameInputObjectFields'; export { default as FilterInputObjectFields } from './FilterInputObjectFields'; export { default as TransformQuery } from './TransformQuery';