Skip to content

Commit c3866a7

Browse files
committed
emit identifier info in dedicated object
1 parent c5be931 commit c3866a7

File tree

107 files changed

+763
-388
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+763
-388
lines changed

compiler/crates/relay-codegen/src/build_ast.rs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -438,17 +438,13 @@ impl<'schema, 'builder, 'config> CodegenBuilder<'schema, 'builder, 'config> {
438438
),
439439
operation: Primitive::GraphQLModuleDependency(GraphQLModuleDependency::Name(refetch_metadata.operation_name.into())),
440440
};
441-
if let Some(identifier_field) = refetch_metadata.identifier_field {
441+
if let Some(identifier_info) = &refetch_metadata.identifier_info {
442442
refetch_object.push(ObjectEntry {
443-
key: CODEGEN_CONSTANTS.identifier_field,
444-
value: Primitive::String(identifier_field),
445-
});
446-
}
447-
448-
if let Some(x) = refetch_metadata.identifier_query_variable_name {
449-
refetch_object.push(ObjectEntry {
450-
key: CODEGEN_CONSTANTS.identifier_query_variable_name,
451-
value: Primitive::String(x),
443+
key: CODEGEN_CONSTANTS.identifier_info,
444+
value: Primitive::Key(self.object(object! {
445+
identifier_field: Primitive::String(identifier_info.identifier_field),
446+
identifier_query_variable_name: Primitive::String(identifier_info.identifier_query_variable_name),
447+
})),
452448
});
453449
}
454450

compiler/crates/relay-codegen/src/constants.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ pub struct CodegenConstants {
6161
pub id: StringKey,
6262
pub identifier_field: StringKey,
6363
pub identifier_query_variable_name: StringKey,
64+
pub identifier_info: StringKey,
6465
pub if_: StringKey,
6566
pub inline_data_fragment_spread: StringKey,
6667
pub inline_data_fragment: StringKey,
@@ -172,6 +173,7 @@ lazy_static! {
172173
id: "id".intern(),
173174
identifier_field: "identifierField".intern(),
174175
identifier_query_variable_name: "identifierQueryVariableName".intern(),
176+
identifier_info: "identifierInfo".intern(),
175177
if_: "if".intern(),
176178
inline_data_fragment_spread: "InlineDataFragmentSpread".intern(),
177179
inline_data_fragment: "InlineDataFragment".intern(),

compiler/crates/relay-codegen/tests/client_edges/fixtures/client-edge-backed-by-resolver.expected

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,10 @@ extend type User {
127127
"node"
128128
],
129129
"operation": require('ClientEdgeQuery_Foo_user_best_friend.graphql'),
130-
"identifierField": "id",
131-
"identifierQueryVariableName": "id"
130+
"indentifierInfo": {
131+
"identifierField": "id",
132+
"identifierQueryVariableName": "id"
133+
}
132134
}
133135
},
134136
"name": "RefetchableClientEdgeQuery_Foo_user_best_friend",

compiler/crates/relay-compiler/tests/compile_relay_artifacts/fixtures/fragment-on-node-interface.expected

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,10 @@ fragment fragmentOnNodeInterface_RefetchableFragment on Node {
244244
"node"
245245
],
246246
"operation": require('RefetchableFragmentQuery.graphql'),
247-
"identifierField": "id",
248-
"identifierQueryVariableName": "id"
247+
"indentifierInfo": {
248+
"identifierField": "id",
249+
"identifierQueryVariableName": "id"
250+
}
249251
}
250252
},
251253
"name": "fragmentOnNodeInterface_RefetchableFragment",

compiler/crates/relay-compiler/tests/compile_relay_artifacts/fixtures/fragment-on-non-node-fetchable-type.expected

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,10 @@ fragment fragmentOnNonNodeFetchableType_RefetchableFragment on NonNodeStory {
263263
"fetch__NonNodeStory"
264264
],
265265
"operation": require('RefetchableFragmentQuery.graphql'),
266-
"identifierField": "fetch_id",
267-
"identifierQueryVariableName": "id"
266+
"indentifierInfo": {
267+
"identifierField": "fetch_id",
268+
"identifierQueryVariableName": "id"
269+
}
268270
}
269271
},
270272
"name": "fragmentOnNonNodeFetchableType_RefetchableFragment",

compiler/crates/relay-compiler/tests/compile_relay_artifacts/fixtures/fragment-on-object-implementing-node-interface.expected

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,10 @@ fragment fragmentOnObjectImplementingNodeInterface_RefetchableFragment on User {
235235
"node"
236236
],
237237
"operation": require('RefetchableFragmentQuery.graphql'),
238-
"identifierField": "id",
239-
"identifierQueryVariableName": "id"
238+
"indentifierInfo": {
239+
"identifierField": "id",
240+
"identifierQueryVariableName": "id"
241+
}
240242
}
241243
},
242244
"name": "fragmentOnObjectImplementingNodeInterface_RefetchableFragment",

compiler/crates/relay-compiler/tests/compile_relay_artifacts/fixtures/provided-variable-refetchable-fragment.expected

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,8 +321,10 @@ fragment providedVariableRefetchableFragment_providedVariableFragment on User {
321321
"node"
322322
],
323323
"operation": require('refetchableQuery.graphql'),
324-
"identifierField": "id",
325-
"identifierQueryVariableName": "id"
324+
"indentifierInfo": {
325+
"identifierField": "id",
326+
"identifierQueryVariableName": "id"
327+
}
326328
}
327329
},
328330
"name": "providedVariableRefetchableFragment",

compiler/crates/relay-compiler/tests/compile_relay_artifacts/fixtures/refetchable-connection-custom-handler.expected

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,8 +318,10 @@ fragment refetchableConnectionCustomHandler_RefetchableConnection_feedback on Fe
318318
"node"
319319
],
320320
"operation": require('RefetchableConnectionQuery.graphql'),
321-
"identifierField": "id",
322-
"identifierQueryVariableName": "id"
321+
"indentifierInfo": {
322+
"identifierField": "id",
323+
"identifierQueryVariableName": "id"
324+
}
323325
}
324326
},
325327
"name": "refetchableConnectionCustomHandler_RefetchableConnection_feedback",

compiler/crates/relay-compiler/tests/compile_relay_artifacts/fixtures/refetchable-connection.expected

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,8 +318,10 @@ fragment refetchableConnection_RefetchableConnection_feedback on Feedback {
318318
"node"
319319
],
320320
"operation": require('RefetchableConnectionQuery.graphql'),
321-
"identifierField": "id",
322-
"identifierQueryVariableName": "id"
321+
"indentifierInfo": {
322+
"identifierField": "id",
323+
"identifierQueryVariableName": "id"
324+
}
323325
}
324326
},
325327
"name": "refetchableConnection_RefetchableConnection_feedback",

compiler/crates/relay-compiler/tests/compile_relay_artifacts/fixtures/refetchable-fragment-on-node-with-missing-id.expected

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,10 @@ fragment refetchableFragmentOnNodeWithMissingId_RefetchableFragment on Node {
243243
"node"
244244
],
245245
"operation": require('RefetchableFragmentQuery.graphql'),
246-
"identifierField": "id",
247-
"identifierQueryVariableName": "id"
246+
"indentifierInfo": {
247+
"identifierField": "id",
248+
"identifierQueryVariableName": "id"
249+
}
248250
}
249251
},
250252
"name": "refetchableFragmentOnNodeWithMissingId_RefetchableFragment",

0 commit comments

Comments
 (0)