Skip to content

Commit c66652f

Browse files
committed
import provided variable before type section
1 parent 27c0a38 commit c66652f

18 files changed

+386
-136
lines changed

compiler/crates/relay-compiler/src/artifact_content/content.rs

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -361,15 +361,32 @@ pub fn generate_operation(
361361
content_sections.push(ContentSection::CommentAnnotations(section));
362362
// -- End Metadata Annotations Section --
363363

364-
// -- Begin Types Section --
365-
let mut section = GenericSection::default();
366364
let generated_types = ArtifactGeneratedTypes::from_operation(
367365
typegen_operation,
368366
skip_types,
369367
request_parameters.is_client_request(),
370368
project_config.typegen_config.language,
371369
);
372370

371+
let mut top_level_statements = Default::default();
372+
// -- Begin Query Node Section --
373+
let request = printer.print_request(
374+
schema,
375+
normalization_operation,
376+
&operation_fragment,
377+
request_parameters,
378+
&mut top_level_statements,
379+
);
380+
381+
// -- Begin Top Level Statements Section --
382+
let mut section: GenericSection = GenericSection::default();
383+
write!(section, "{}", &top_level_statements)?;
384+
content_sections.push(ContentSection::Generic(section));
385+
// -- End Top Level Statements Section --
386+
387+
// -- Begin Types Section --
388+
let mut section = GenericSection::default();
389+
373390
if project_config.typegen_config.language == TypegenLanguage::Flow {
374391
writeln!(section, "/*::")?;
375392
}
@@ -404,22 +421,6 @@ pub fn generate_operation(
404421
content_sections.push(ContentSection::Generic(section));
405422
// -- End Types Section --
406423

407-
let mut top_level_statements = Default::default();
408-
// -- Begin Query Node Section --
409-
let request = printer.print_request(
410-
schema,
411-
normalization_operation,
412-
&operation_fragment,
413-
request_parameters,
414-
&mut top_level_statements,
415-
);
416-
417-
// -- Begin Top Level Statements Section --
418-
let mut section: GenericSection = GenericSection::default();
419-
write!(section, "{}", &top_level_statements)?;
420-
content_sections.push(ContentSection::Generic(section));
421-
// -- End Top Level Statements Section --
422-
423424
let mut section = GenericSection::default();
424425
write_variable_value_with_type(
425426
&project_config.typegen_config.language,

compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/client_mutation_resolver.expected

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ type Query {
3030
==================================== OUTPUT ===================================
3131
//- __generated__/barMutation.graphql.js
3232
/**
33-
* <auto-generated> SignedSource<<9c253a512cbd9b531ef5c5c5feb60982>>
33+
* <auto-generated> SignedSource<<e2956199e2553fdcfa041c41e686056e>>
3434
* @flow
3535
* @lightSyntaxTransform
3636
* @nogrep
@@ -40,6 +40,8 @@ type Query {
4040

4141
'use strict';
4242

43+
import {foo_mutation as mutationFooMutationResolver} from '../foo';
44+
4345
/*::
4446
import type { ClientRequest, Mutation } from 'relay-runtime';
4547
import {foo_mutation as mutationFooMutationResolverType} from "../foo.js";
@@ -56,8 +58,6 @@ export type barMutation = {|
5658
|};
5759
*/
5860

59-
import {foo_mutation as mutationFooMutationResolver} from '../foo';
60-
6161
var node/*: ClientRequest*/ = {
6262
"fragment": {
6363
"argumentDefinitions": [],

compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/client_mutation_resolver_different_mutation_ok.expected

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ export default node;
107107

108108
//- __generated__/barMutation.graphql.js
109109
/**
110-
* <auto-generated> SignedSource<<e3b0a17c6085284ff8900e05b13dad99>>
110+
* <auto-generated> SignedSource<<f0ac5ea52e11a073652cab7259022fb2>>
111111
* @flow
112112
* @lightSyntaxTransform
113113
* @nogrep
@@ -117,6 +117,8 @@ export default node;
117117

118118
'use strict';
119119

120+
import {baz_mutation as notCalledMutationBazMutationResolver} from '../foo';
121+
120122
/*::
121123
import type { ClientRequest, Mutation } from 'relay-runtime';
122124
import {baz_mutation as notCalledMutationBazMutationResolverType} from "../foo.js";
@@ -133,8 +135,6 @@ export type barMutation = {|
133135
|};
134136
*/
135137

136-
import {baz_mutation as notCalledMutationBazMutationResolver} from '../foo';
137-
138138
var node/*: ClientRequest*/ = {
139139
"fragment": {
140140
"argumentDefinitions": [],

compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/client_schema_extension_interface_uses_resolver_type.expected

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ export default ((node/*: any*/)/*: Fragment<
176176

177177
//- __generated__/PersonComponentQuery.graphql.js
178178
/**
179-
* <auto-generated> SignedSource<<2d07c1150de22f2bad1b3141700c5cc0>>
179+
* <auto-generated> SignedSource<<124c24d113c605bce4a96989129257a4>>
180180
* @flow
181181
* @lightSyntaxTransform
182182
* @nogrep
@@ -186,6 +186,13 @@ export default ((node/*: any*/)/*: Fragment<
186186

187187
'use strict';
188188

189+
import {Admin as adminRelayModelInstanceResolver} from 'Admin';
190+
import {admin as adminAdminResolver} from 'Admin';
191+
import {boss as queryBossResolver} from 'Admin';
192+
import Admin____relay_model_instance_graphql from 'Admin____relay_model_instance.graphql';
193+
import Admin__id_graphql from 'Admin__id.graphql';
194+
import {resolverDataInjector} from 'relay-runtime/experimental';
195+
189196
/*::
190197
import type { ClientRequest, ClientQuery } from 'relay-runtime';
191198
import type { DataID } from "relay-runtime";
@@ -218,13 +225,6 @@ export type PersonComponentQuery = {|
218225
|};
219226
*/
220227

221-
import {Admin as adminRelayModelInstanceResolver} from 'Admin';
222-
import {admin as adminAdminResolver} from 'Admin';
223-
import {boss as queryBossResolver} from 'Admin';
224-
import Admin____relay_model_instance_graphql from 'Admin____relay_model_instance.graphql';
225-
import Admin__id_graphql from 'Admin__id.graphql';
226-
import {resolverDataInjector} from 'relay-runtime/experimental';
227-
228228
var node/*: ClientRequest*/ = (function(){
229229
var v0 = {
230230
"args": null,

compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/multiple_resolvers_on_interface_of_all_strong_model_type.expected

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ export default ((node/*: any*/)/*: Fragment<
183183

184184
//- __generated__/PersonComponentQuery.graphql.js
185185
/**
186-
* <auto-generated> SignedSource<<e0022cdfb92fda66bd256d91ed716cdc>>
186+
* <auto-generated> SignedSource<<63eed724432f1c9c48a557c49e7612f0>>
187187
* @flow
188188
* @lightSyntaxTransform
189189
* @nogrep
@@ -193,6 +193,14 @@ export default ((node/*: any*/)/*: Fragment<
193193

194194
'use strict';
195195

196+
import Admin____relay_model_instance_graphql from 'Admin____relay_model_instance.graphql';
197+
import {description as adminDescriptionResolver} from 'IActorResolvers';
198+
import {description as userDescriptionResolver} from 'IActorResolvers';
199+
import {name as adminNameResolver} from 'IPersonResolvers';
200+
import {name as userNameResolver} from 'IPersonResolvers';
201+
import User____relay_model_instance_graphql from 'User____relay_model_instance.graphql';
202+
import {resolverDataInjector} from 'relay-runtime/experimental';
203+
196204
/*::
197205
import type { ClientRequest, ClientQuery } from 'relay-runtime';
198206
import type { Admin____relay_model_instance$data } from "Admin____relay_model_instance.graphql";
@@ -224,14 +232,6 @@ export type PersonComponentQuery = {|
224232
|};
225233
*/
226234

227-
import Admin____relay_model_instance_graphql from 'Admin____relay_model_instance.graphql';
228-
import {description as adminDescriptionResolver} from 'IActorResolvers';
229-
import {description as userDescriptionResolver} from 'IActorResolvers';
230-
import {name as adminNameResolver} from 'IPersonResolvers';
231-
import {name as userNameResolver} from 'IPersonResolvers';
232-
import User____relay_model_instance_graphql from 'User____relay_model_instance.graphql';
233-
import {resolverDataInjector} from 'relay-runtime/experimental';
234-
235235
var node/*: ClientRequest*/ = (function(){
236236
var v0 = {
237237
"args": null,

compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/multiple_resolvers_returns_interfaces_of_all_strong_model_type.expected

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ export default ((node/*: any*/)/*: Fragment<
192192

193193
//- __generated__/PersonComponentQuery.graphql.js
194194
/**
195-
* <auto-generated> SignedSource<<412e97e1ab4e0e6ee91f6302ee11a247>>
195+
* <auto-generated> SignedSource<<eb5902cfcc0de4c81d031c4f9634542f>>
196196
* @flow
197197
* @lightSyntaxTransform
198198
* @nogrep
@@ -202,6 +202,14 @@ export default ((node/*: any*/)/*: Fragment<
202202

203203
'use strict';
204204

205+
import {description as adminDescriptionResolver} from 'AdminTypeResolvers';
206+
import {name as adminNameResolver} from 'AdminTypeResolvers';
207+
import Admin____relay_model_instance_graphql from 'Admin____relay_model_instance.graphql';
208+
import {description as userDescriptionResolver} from 'UserTypeResolvers';
209+
import {name as userNameResolver} from 'UserTypeResolvers';
210+
import User____relay_model_instance_graphql from 'User____relay_model_instance.graphql';
211+
import {resolverDataInjector} from 'relay-runtime/experimental';
212+
205213
/*::
206214
import type { ClientRequest, ClientQuery } from 'relay-runtime';
207215
export type PersonComponentQuery$variables = {||};
@@ -219,14 +227,6 @@ export type PersonComponentQuery = {|
219227
|};
220228
*/
221229

222-
import {description as adminDescriptionResolver} from 'AdminTypeResolvers';
223-
import {name as adminNameResolver} from 'AdminTypeResolvers';
224-
import Admin____relay_model_instance_graphql from 'Admin____relay_model_instance.graphql';
225-
import {description as userDescriptionResolver} from 'UserTypeResolvers';
226-
import {name as userNameResolver} from 'UserTypeResolvers';
227-
import User____relay_model_instance_graphql from 'User____relay_model_instance.graphql';
228-
import {resolverDataInjector} from 'relay-runtime/experimental';
229-
230230
var node/*: ClientRequest*/ = (function(){
231231
var v0 = {
232232
"args": null,

0 commit comments

Comments
 (0)