From 0105d92857cc70f7b335b828660cc0dae0d22435 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 15 Aug 2019 00:18:20 +0300 Subject: [PATCH] definition: replace object spread with explicit assignments (#2089) In preparation for #1527 --- src/type/__tests__/definition-test.js | 37 ++++++++++++++++++++++++--- src/type/definition.js | 17 +++++++++--- 2 files changed, 48 insertions(+), 6 deletions(-) diff --git a/src/type/__tests__/definition-test.js b/src/type/__tests__/definition-test.js index 658c26a974..c352192bbc 100644 --- a/src/type/__tests__/definition-test.js +++ b/src/type/__tests__/definition-test.js @@ -192,6 +192,10 @@ describe('Type System: Objects', () => { isDeprecated: true, name: 'bar', args: [], + astNode: undefined, + resolve: undefined, + subscribe: undefined, + description: undefined, }); }); @@ -203,7 +207,17 @@ describe('Type System: Objects', () => { }), }); expect(objType.getFields()).to.deep.equal({ - f: { name: 'f', type: ScalarType, args: [], isDeprecated: false }, + f: { + name: 'f', + type: ScalarType, + args: [], + isDeprecated: false, + deprecationReason: undefined, + astNode: undefined, + resolve: undefined, + subscribe: undefined, + description: undefined, + }, }); }); @@ -233,6 +247,11 @@ describe('Type System: Objects', () => { }, ], isDeprecated: false, + deprecationReason: undefined, + astNode: undefined, + resolve: undefined, + subscribe: undefined, + description: undefined, }, }); }); @@ -625,7 +644,13 @@ describe('Type System: Input Objects', () => { }, }); expect(inputObjType.getFields()).to.deep.equal({ - f: { name: 'f', type: ScalarType }, + f: { + name: 'f', + description: undefined, + type: ScalarType, + defaultValue: undefined, + astNode: undefined, + }, }); }); @@ -637,7 +662,13 @@ describe('Type System: Input Objects', () => { }), }); expect(inputObjType.getFields()).to.deep.equal({ - f: { name: 'f', type: ScalarType }, + f: { + name: 'f', + description: undefined, + type: ScalarType, + defaultValue: undefined, + astNode: undefined, + }, }); }); diff --git a/src/type/definition.js b/src/type/definition.js index ef1f61cb4f..f322f4d9d1 100644 --- a/src/type/definition.js +++ b/src/type/definition.js @@ -778,10 +778,15 @@ function defineFieldMap( })); return { - ...fieldConfig, - isDeprecated: Boolean(fieldConfig.deprecationReason), name: fieldName, + description: fieldConfig.description, + type: fieldConfig.type, args, + resolve: fieldConfig.resolve, + subscribe: fieldConfig.subscribe, + isDeprecated: Boolean(fieldConfig.deprecationReason), + deprecationReason: fieldConfig.deprecationReason, + astNode: fieldConfig.astNode, }; }); } @@ -1368,7 +1373,13 @@ function defineInputFieldMap( `${config.name}.${fieldName} field has a resolve property, but Input Types cannot define resolvers.`, ); - return { ...fieldConfig, name: fieldName }; + return { + name: fieldName, + type: fieldConfig.type, + defaultValue: fieldConfig.defaultValue, + description: fieldConfig.description, + astNode: fieldConfig.astNode, + }; }); }