From 3d218a7c5a134a7459eb52135854c3337f86ca0d Mon Sep 17 00:00:00 2001 From: Jan Kassens Date: Tue, 31 Mar 2020 22:32:23 -0700 Subject: [PATCH] sort object keys in missing cases Reviewed By: tyao1 Differential Revision: D20786719 fbshipit-source-id: 70de5fd4abbb090fbedbe83d19a13e29873271f0 --- .../codegen/NormalizationCodeGenerator.js | 40 ++++++++++++------- .../compileRelayArtifacts-test.js.snap | 4 +- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/packages/relay-compiler/codegen/NormalizationCodeGenerator.js b/packages/relay-compiler/codegen/NormalizationCodeGenerator.js index f593262b05cf3..eb753b63c9eb4 100644 --- a/packages/relay-compiler/codegen/NormalizationCodeGenerator.js +++ b/packages/relay-compiler/codegen/NormalizationCodeGenerator.js @@ -28,6 +28,7 @@ import type { Stream, Condition, InlineFragment, + ModuleImport, LocalArgumentDefinition, } from '../core/IR'; import type {Schema, TypeID} from '../core/Schema'; @@ -374,9 +375,8 @@ function generateLinkedField( } function generateModuleImport( - node, - key, - sortObjectKeys, + node: ModuleImport, + sortObjectKeys: boolean, ): NormalizationModuleImport { const fragmentName = node.name; const regExpMatch = fragmentName.match( @@ -595,17 +595,29 @@ function generateArgumentValue( }; } case 'ListValue': { - return { - kind: 'ListValue', - name: name, - items: value.items.map((item, index) => { - return generateArgumentValue( - `${name}.${index}`, - item, - sortObjectKeys, - ); - }), - }; + return sortObjectKeys + ? { + items: value.items.map((item, index) => { + return generateArgumentValue( + `${name}.${index}`, + item, + sortObjectKeys, + ); + }), + kind: 'ListValue', + name: name, + } + : { + kind: 'ListValue', + name: name, + items: value.items.map((item, index) => { + return generateArgumentValue( + `${name}.${index}`, + item, + sortObjectKeys, + ); + }), + }; } default: throw createUserError( diff --git a/packages/relay-compiler/codegen/__tests__/__snapshots__/compileRelayArtifacts-test.js.snap b/packages/relay-compiler/codegen/__tests__/__snapshots__/compileRelayArtifacts-test.js.snap index 00e29826e5355..b8082c43ac083 100644 --- a/packages/relay-compiler/codegen/__tests__/__snapshots__/compileRelayArtifacts-test.js.snap +++ b/packages/relay-compiler/codegen/__tests__/__snapshots__/compileRelayArtifacts-test.js.snap @@ -1611,7 +1611,6 @@ Request { ObjectValue { fields: [ ListValue { - name: "inputs", items: [ ObjectValue { fields: [ @@ -1632,6 +1631,7 @@ Request { variableName: "searchInputLast", }, ], + name: "inputs", }, Variable { name: "query", @@ -1788,7 +1788,6 @@ Request { alias: null, args: [ ListValue { - name: "waypoints", items: [ ObjectValue { fields: [ @@ -1830,6 +1829,7 @@ Request { name: "waypoints.2", }, ], + name: "waypoints", }, ], concreteType: "Route",