diff --git a/compiler/crates/relay-codegen/src/build_ast.rs b/compiler/crates/relay-codegen/src/build_ast.rs index b3b21880bdb68..54d3ca8471c16 100644 --- a/compiler/crates/relay-codegen/src/build_ast.rs +++ b/compiler/crates/relay-codegen/src/build_ast.rs @@ -75,14 +75,12 @@ use crate::ast::QueryID; use crate::ast::RequestParameters; use crate::constants::CODEGEN_CONSTANTS; use crate::object; -use crate::top_level_statements::TopLevelStatements; pub fn build_request_params_ast_key( schema: &SDLSchema, request_parameters: RequestParameters<'_>, ast_builder: &mut AstBuilder, operation: &OperationDefinition, - top_level_statements: &TopLevelStatements, definition_source_location: WithLocation, project_config: &ProjectConfig, ) -> AstKey { @@ -93,7 +91,7 @@ pub fn build_request_params_ast_key( project_config, definition_source_location, ); - operation_builder.build_request_parameters(operation, request_parameters, top_level_statements) + operation_builder.build_request_parameters(operation, request_parameters) } pub fn build_provided_variables( @@ -1837,7 +1835,6 @@ impl<'schema, 'builder, 'config> CodegenBuilder<'schema, 'builder, 'config> { &mut self, operation: &OperationDefinition, request_parameters: RequestParameters<'_>, - top_level_statements: &TopLevelStatements, ) -> AstKey { let mut metadata_items: Vec = operation .directives @@ -1926,20 +1923,10 @@ impl<'schema, 'builder, 'config> CodegenBuilder<'schema, 'builder, 'config> { }, }); - let provided_variables = if top_level_statements - .contains(CODEGEN_CONSTANTS.provided_variables_definition.lookup()) - { - Some(Primitive::Variable( - CODEGEN_CONSTANTS.provided_variables_definition, - )) - } else { - self.build_operation_provided_variables(operation) - .map(Primitive::Key) - }; - if let Some(value) = provided_variables { + if let Some(provided_variables) = self.build_operation_provided_variables(operation) { params_object.push(ObjectEntry { key: CODEGEN_CONSTANTS.provided_variables, - value, + value: Primitive::Key(provided_variables), }); } diff --git a/compiler/crates/relay-codegen/src/constants.rs b/compiler/crates/relay-codegen/src/constants.rs index f8e9ef6f95637..a7a7981040a7a 100644 --- a/compiler/crates/relay-codegen/src/constants.rs +++ b/compiler/crates/relay-codegen/src/constants.rs @@ -90,7 +90,6 @@ pub struct CodegenConstants { pub passing_value: StringKey, pub path: StringKey, pub plural: StringKey, - pub provided_variables_definition: StringKey, pub provided_variables: StringKey, pub provider: StringKey, pub query: StringKey, @@ -200,7 +199,6 @@ lazy_static! { passing_value: "passingValue".intern(), path: "path".intern(), plural: "plural".intern(), - provided_variables_definition: "providedVariablesDefinition".intern(), provided_variables: "providedVariables".intern(), provider: "provider".intern(), query: "query".intern(), diff --git a/compiler/crates/relay-codegen/src/lib.rs b/compiler/crates/relay-codegen/src/lib.rs index ebf9c4ebfc487..a5442758ae58f 100644 --- a/compiler/crates/relay-codegen/src/lib.rs +++ b/compiler/crates/relay-codegen/src/lib.rs @@ -28,6 +28,7 @@ pub use build_ast::CodegenVariant; pub use constants::CODEGEN_CONSTANTS; pub use printer::print_fragment; pub use printer::print_operation; +pub use printer::print_provided_variables; pub use printer::print_request; pub use printer::print_request_params; pub use printer::JSONPrinter; diff --git a/compiler/crates/relay-codegen/src/printer.rs b/compiler/crates/relay-codegen/src/printer.rs index 8a0bb5cd43a04..a822ccd144cff 100644 --- a/compiler/crates/relay-codegen/src/printer.rs +++ b/compiler/crates/relay-codegen/src/printer.rs @@ -94,14 +94,12 @@ pub fn print_request_params( ) -> String { let mut request_parameters = build_request_params(operation); request_parameters.id = query_id; - - let mut builder = AstBuilder::default(); + let mut builder: AstBuilder = AstBuilder::default(); let request_parameters_ast_key = build_request_params_ast_key( schema, request_parameters, &mut builder, operation, - top_level_statements, operation.name.map(|x| x.0), project_config, ); @@ -109,6 +107,24 @@ pub fn print_request_params( printer.print(request_parameters_ast_key, false) } +pub fn print_provided_variables( + schema: &SDLSchema, + operation: &OperationDefinition, + project_config: &ProjectConfig, +) -> Option { + let mut top_level_statements = Default::default(); + let mut builder = AstBuilder::default(); + let maybe_provided_variables = build_provided_variables( + schema, + &mut builder, + operation, + operation.name.map(|x| x.0), + project_config, + )?; + let printer = JSONPrinter::new(&builder, project_config, &mut top_level_statements); + Some(printer.print(maybe_provided_variables, false)) +} + pub struct Printer<'p> { project_config: &'p ProjectConfig, builder: AstBuilder, @@ -138,7 +154,7 @@ impl<'p> Printer<'p> { operation: &OperationDefinition, top_level_statements: &mut TopLevelStatements, ) -> Option { - let key = build_provided_variables( + let provided_variables = build_provided_variables( schema, &mut self.builder, operation, @@ -146,7 +162,7 @@ impl<'p> Printer<'p> { self.project_config, )?; let printer = JSONPrinter::new(&self.builder, self.project_config, top_level_statements); - Some(printer.print(key, self.dedupe)) + Some(printer.print(provided_variables, self.dedupe)) } pub fn print_updatable_query( @@ -189,7 +205,6 @@ impl<'p> Printer<'p> { request_parameters, &mut self.builder, operation, - top_level_statements, operation.name.map(|x| x.0), self.project_config, ); @@ -253,7 +268,6 @@ impl<'p> Printer<'p> { request_parameters, &mut self.builder, operation, - top_level_statements, operation.name.map(|x| x.0), self.project_config, ); diff --git a/compiler/crates/relay-compiler-playground/src/lib.rs b/compiler/crates/relay-compiler-playground/src/lib.rs index 9653b7003b5bf..8512231ebd66d 100644 --- a/compiler/crates/relay-compiler-playground/src/lib.rs +++ b/compiler/crates/relay-compiler-playground/src/lib.rs @@ -18,6 +18,7 @@ use graphql_text_printer::PrinterOptions; use intern::string_key::Intern; use relay_codegen::print_fragment; use relay_codegen::print_operation; +use relay_codegen::print_provided_variables; use relay_config::ProjectConfig; use relay_schema::build_schema_with_extensions; use relay_transforms::apply_transforms; @@ -254,6 +255,7 @@ pub fn parse_to_types_impl( &schema, &project_config, &fragment_locations, + print_provided_variables(&schema, normalization_operation, &project_config), ) })) .collect::>() diff --git a/compiler/crates/relay-compiler/src/artifact_content/content.rs b/compiler/crates/relay-compiler/src/artifact_content/content.rs index 9bfe7515c79e7..756c8d90e6b43 100644 --- a/compiler/crates/relay-compiler/src/artifact_content/content.rs +++ b/compiler/crates/relay-compiler/src/artifact_content/content.rs @@ -14,12 +14,9 @@ use common::NamedItem; use graphql_ir::FragmentDefinition; use graphql_ir::FragmentDefinitionName; use graphql_ir::OperationDefinition; -use intern::Lookup; use relay_codegen::build_request_params; use relay_codegen::Printer; use relay_codegen::QueryID; -use relay_codegen::TopLevelStatement; -use relay_codegen::CODEGEN_CONSTANTS; use relay_transforms::is_operation_preloadable; use relay_transforms::RelayDataDrivenDependencyMetadata; use relay_transforms::ASSIGNABLE_DIRECTIVE; @@ -111,6 +108,7 @@ pub fn generate_updatable_query( schema, project_config, fragment_locations, + None, // TODO: Add/investigrate support for provided variables in updatable queries ) )?; } @@ -129,7 +127,7 @@ pub fn generate_updatable_query( &project_config.typegen_config.language, &mut section, "node", - generated_types.ast_type, + Some(generated_types.ast_type), &request, )?; content_sections.push(ContentSection::Generic(section)); @@ -264,7 +262,14 @@ pub fn generate_operation( "relay-runtime", )?; + // -- Generate provided variables -- + let mut top_level_statements = Default::default(); if !skip_types { + let maybe_provided_variables = printer.print_provided_variables( + schema, + normalization_operation, + &mut top_level_statements, + ); write!( section, "{}", @@ -274,6 +279,7 @@ pub fn generate_operation( schema, project_config, fragment_locations, + maybe_provided_variables, ) )?; } @@ -286,25 +292,11 @@ pub fn generate_operation( // -- Begin Top Level Statements Section -- let mut section = GenericSection::default(); - let mut top_level_statements = Default::default(); - if let Some(provided_variables) = - printer.print_provided_variables(schema, normalization_operation, &mut top_level_statements) - { - let mut provided_variable_text = String::new(); - write_variable_value_with_type( - &project_config.typegen_config.language, - &mut provided_variable_text, - CODEGEN_CONSTANTS.provided_variables_definition.lookup(), - relay_typegen::PROVIDED_VARIABLE_TYPE, - &provided_variables, - ) - .unwrap(); - top_level_statements.insert( - CODEGEN_CONSTANTS.provided_variables_definition.to_string(), - TopLevelStatement::VariableDefinition(provided_variable_text), - ); - } + write!(section, "{}", &top_level_statements)?; + content_sections.push(ContentSection::Generic(section)); + // -- End Top Level Statements Section -- + // -- Begin Query Node Section -- let request = printer.print_request( schema, normalization_operation, @@ -313,17 +305,12 @@ pub fn generate_operation( &mut top_level_statements, ); - write!(section, "{}", &top_level_statements)?; - content_sections.push(ContentSection::Generic(section)); - // -- End Top Level Statements Section -- - - // -- Begin Query Node Section -- let mut section = GenericSection::default(); write_variable_value_with_type( &project_config.typegen_config.language, &mut section, "node", - generated_types.ast_type, + Some(generated_types.ast_type), &request, )?; content_sections.push(ContentSection::Generic(section)); @@ -469,7 +456,7 @@ pub fn generate_split_operation( &project_config.typegen_config.language, &mut section, "node", - "NormalizationSplitOperation", + Some("NormalizationSplitOperation"), &operation, )?; content_sections.push(ContentSection::Generic(section)); @@ -631,7 +618,7 @@ fn generate_read_only_fragment( &project_config.typegen_config.language, &mut section, "node", - generated_types.ast_type, + Some(generated_types.ast_type), &fragment, )?; content_sections.push(ContentSection::Generic(section)); @@ -726,7 +713,7 @@ fn generate_assignable_fragment( &project_config.typegen_config.language, &mut section, "node", - "any", + Some("any"), "{}", )?; content_sections.push(ContentSection::Generic(section)); @@ -774,17 +761,17 @@ fn write_variable_value_with_type( language: &TypegenLanguage, section: &mut dyn Write, variable_name: &str, - type_: &str, + type_: Option<&str>, value: &str, ) -> FmtResult { - match language { - TypegenLanguage::JavaScript => writeln!(section, "var {} = {};", variable_name, value), - TypegenLanguage::Flow => { + match (language, type_) { + (TypegenLanguage::Flow, Some(type_)) => { writeln!(section, "var {}/*: {}*/ = {};", variable_name, type_, value) } - TypegenLanguage::TypeScript => { + (TypegenLanguage::TypeScript, Some(type_)) => { writeln!(section, "const {}: {} = {};", variable_name, type_, value) } + (_, _) => writeln!(section, "var {} = {};", variable_name, value), } } diff --git a/compiler/crates/relay-typegen/src/flow.rs b/compiler/crates/relay-typegen/src/flow.rs index acd4bf7e1fa16..f69144735d452 100644 --- a/compiler/crates/relay-typegen/src/flow.rs +++ b/compiler/crates/relay-typegen/src/flow.rs @@ -85,10 +85,10 @@ impl Writer for FlowPrinter { "FragmentType" } - fn write_local_type(&mut self, name: &str, value: &AST) -> FmtResult { - write!(&mut self.result, "type {} = ", name)?; + fn write_type_assertion(&mut self, name: &str, value: &AST) -> FmtResult { + write!(&mut self.result, "({}: ", name)?; self.write(value)?; - writeln!(&mut self.result, ";") + writeln!(&mut self.result, ");") } fn write_export_type(&mut self, name: &str, value: &AST) -> FmtResult { diff --git a/compiler/crates/relay-typegen/src/javascript.rs b/compiler/crates/relay-typegen/src/javascript.rs index e3e582ccdba05..ccdeb20329789 100644 --- a/compiler/crates/relay-typegen/src/javascript.rs +++ b/compiler/crates/relay-typegen/src/javascript.rs @@ -35,7 +35,7 @@ impl Writer for JavaScriptPrinter { "" } - fn write_local_type(&mut self, _name: &str, _value: &AST) -> FmtResult { + fn write_type_assertion(&mut self, _name: &str, _value: &AST) -> FmtResult { Ok(()) } diff --git a/compiler/crates/relay-typegen/src/lib.rs b/compiler/crates/relay-typegen/src/lib.rs index fc7902c15a0eb..1afb813e7abf2 100644 --- a/compiler/crates/relay-typegen/src/lib.rs +++ b/compiler/crates/relay-typegen/src/lib.rs @@ -44,7 +44,6 @@ static REACT_RELAY_MULTI_ACTOR: &str = "react-relay/multi-actor"; static RELAY_RUNTIME: &str = "relay-runtime"; static LOCAL_3D_PAYLOAD: &str = "Local3DPayload"; static ACTOR_CHANGE_POINT: &str = "ActorChangePoint"; -pub static PROVIDED_VARIABLE_TYPE: &str = "ProvidedVariablesType"; static VALIDATOR_EXPORT_NAME: &str = "validate"; static LIVE_RESOLVERS_LIVE_STATE: &str = "LiveState"; static LIVE_RESOLVERS_EXPERIMENTAL_STORE_PATH: &str = @@ -171,6 +170,7 @@ pub fn generate_operation_type_exports_section( schema: &SDLSchema, project_config: &ProjectConfig, fragment_locations: &FragmentLocations, + maybe_provided_variables: Option, ) -> String { let typegen_context = TypegenContext::new( schema, @@ -192,6 +192,7 @@ pub fn generate_operation_type_exports_section( typegen_operation, normalization_operation, &mut writer, + maybe_provided_variables, ) .unwrap(); writer.into_string() diff --git a/compiler/crates/relay-typegen/src/typescript.rs b/compiler/crates/relay-typegen/src/typescript.rs index 10e0d472fab44..a5ecae92d115a 100644 --- a/compiler/crates/relay-typegen/src/typescript.rs +++ b/compiler/crates/relay-typegen/src/typescript.rs @@ -91,10 +91,10 @@ impl Writer for TypeScriptPrinter { } } - fn write_local_type(&mut self, name: &str, value: &AST) -> FmtResult { - write!(&mut self.result, "type {} = ", name)?; + fn write_type_assertion(&mut self, name: &str, value: &AST) -> FmtResult { + write!(&mut self.result, "({} as ", name)?; self.write(value)?; - writeln!(&mut self.result, ";") + writeln!(&mut self.result, ");") } fn write_export_type(&mut self, name: &str, value: &AST) -> FmtResult { diff --git a/compiler/crates/relay-typegen/src/write.rs b/compiler/crates/relay-typegen/src/write.rs index 07791d08fb41c..823b5ba677a90 100644 --- a/compiler/crates/relay-typegen/src/write.rs +++ b/compiler/crates/relay-typegen/src/write.rs @@ -68,7 +68,6 @@ use crate::KEY_FRAGMENT_TYPE; use crate::KEY_RAW_RESPONSE; use crate::KEY_TYPENAME; use crate::KEY_UPDATABLE_FRAGMENT_SPREADS; -use crate::PROVIDED_VARIABLE_TYPE; use crate::RAW_RESPONSE_TYPE_DIRECTIVE_NAME; use crate::REACT_RELAY_MULTI_ACTOR; use crate::VALIDATOR_EXPORT_NAME; @@ -80,6 +79,7 @@ pub(crate) fn write_operation_type_exports_section( typegen_operation: &OperationDefinition, normalization_operation: &OperationDefinition, writer: &mut Box, + maybe_provided_variables_object: Option, ) -> FmtResult { let mut encountered_enums = Default::default(); let mut encountered_fragments = Default::default(); @@ -168,7 +168,7 @@ pub(crate) fn write_operation_type_exports_section( write_split_raw_response_type_imports(typegen_context, imported_raw_response_types, writer)?; let mut input_object_types = IndexMap::default(); - let provided_variables_object = generate_provided_variables_type( + let expected_provided_variables_type = generate_provided_variables_type( typegen_context, normalization_operation, &mut input_object_types, @@ -215,8 +215,16 @@ pub(crate) fn write_operation_type_exports_section( &query_wrapper_type.into(), )?; - if let Some(provided_variables) = provided_variables_object { - writer.write_local_type(PROVIDED_VARIABLE_TYPE, &provided_variables)?; + if let (Some(provided_variables_type), Some(actual_provided_variables_object)) = ( + expected_provided_variables_type, + maybe_provided_variables_object, + ) { + // Assert that expected type of provided variables matches + // the flow/typescript types of functions with providers. + writer.write_type_assertion( + actual_provided_variables_object.as_str(), + &provided_variables_type, + )?; } Ok(()) diff --git a/compiler/crates/relay-typegen/src/writer.rs b/compiler/crates/relay-typegen/src/writer.rs index f791f3b9054f2..71f3adb738e71 100644 --- a/compiler/crates/relay-typegen/src/writer.rs +++ b/compiler/crates/relay-typegen/src/writer.rs @@ -357,7 +357,7 @@ pub trait Writer: Write { fn write(&mut self, ast: &AST) -> FmtResult; - fn write_local_type(&mut self, name: &str, ast: &AST) -> FmtResult; + fn write_type_assertion(&mut self, name: &str, ast: &AST) -> FmtResult; fn write_export_type(&mut self, name: &str, ast: &AST) -> FmtResult; diff --git a/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-mixed-provided-variables.expected b/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-mixed-provided-variables.expected index 172d353d967c4..52937dab47b8a 100644 --- a/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-mixed-provided-variables.expected +++ b/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-mixed-provided-variables.expected @@ -63,7 +63,11 @@ export type queryMixedProvidedVar_MultiFragment = {| response: queryMixedProvidedVar_MultiFragment$data, variables: queryMixedProvidedVar_MultiFragment$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__includeNameProvider": require('includeNameProvider'), + "__relay_internal__pv__numberOfFriendsProvider": require('numberOfFriendsProvider'), + "__relay_internal__pv__skipFirstnameProvider": require('skipFirstnameProvider') +}: {| +__relay_internal__pv__includeNameProvider: {| +get: () => CustomBoolean, |}, @@ -73,7 +77,7 @@ type ProvidedVariablesType = {| +__relay_internal__pv__skipFirstnameProvider: {| +get: () => CustomBoolean, |}, -|}; +|}); ------------------------------------------------------------------------------- import type { FragmentOneProvidedVar$fragmentType } from "FragmentOneProvidedVar.graphql"; export type queryMixedProvidedVar_OneFragment$variables = {| @@ -88,11 +92,13 @@ export type queryMixedProvidedVar_OneFragment = {| response: queryMixedProvidedVar_OneFragment$data, variables: queryMixedProvidedVar_OneFragment$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__includeNameProvider": require('includeNameProvider') +}: {| +__relay_internal__pv__includeNameProvider: {| +get: () => CustomBoolean, |}, -|}; +|}); ------------------------------------------------------------------------------- import type { FragmentType } from "relay-runtime"; declare export opaque type FragmentMultiProvidedVar$fragmentType: FragmentType; diff --git a/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-only-provided-variables.expected b/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-only-provided-variables.expected index 4c82f5e43ad42..5fd6e655a0fd9 100644 --- a/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-only-provided-variables.expected +++ b/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-only-provided-variables.expected @@ -46,14 +46,17 @@ export type queryOnlyProvidedVar_MultiFragment = {| response: queryOnlyProvidedVar_MultiFragment$data, variables: queryOnlyProvidedVar_MultiFragment$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__includeNameProvider": require('includeNameProvider'), + "__relay_internal__pv__numberOfFriendsProvider": require('numberOfFriendsProvider') +}: {| +__relay_internal__pv__includeNameProvider: {| +get: () => CustomBoolean, |}, +__relay_internal__pv__numberOfFriendsProvider: {| +get: () => number, |}, -|}; +|}); ------------------------------------------------------------------------------- import type { FragmentOneProvidedVar$fragmentType } from "FragmentOneProvidedVar.graphql"; export type queryOnlyProvidedVar_OneFragment$variables = {||}; @@ -66,11 +69,13 @@ export type queryOnlyProvidedVar_OneFragment = {| response: queryOnlyProvidedVar_OneFragment$data, variables: queryOnlyProvidedVar_OneFragment$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__includeNameProvider": require('includeNameProvider') +}: {| +__relay_internal__pv__includeNameProvider: {| +get: () => CustomBoolean, |}, -|}; +|}); ------------------------------------------------------------------------------- import type { FragmentType } from "relay-runtime"; declare export opaque type FragmentMultiProvidedVar$fragmentType: FragmentType; diff --git a/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-provided-variables-custom-scalar.expected b/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-provided-variables-custom-scalar.expected index bf5396773e0a1..da660832c81ab 100644 --- a/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-provided-variables-custom-scalar.expected +++ b/compiler/crates/relay-typegen/tests/generate_flow/fixtures/query-provided-variables-custom-scalar.expected @@ -26,11 +26,13 @@ export type testQuery = {| response: testQuery$data, variables: testQuery$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__includeNameProvider": require('includeNameProvider') +}: {| +__relay_internal__pv__includeNameProvider: {| +get: () => ?JSON, |}, -|}; +|}); ------------------------------------------------------------------------------- import type { FragmentType } from "relay-runtime"; declare export opaque type FragmentWithJSONProvidedVar$fragmentType: FragmentType; diff --git a/compiler/crates/relay-typegen/tests/generate_flow/mod.rs b/compiler/crates/relay-typegen/tests/generate_flow/mod.rs index 05ac82f184aae..5438c04028248 100644 --- a/compiler/crates/relay-typegen/tests/generate_flow/mod.rs +++ b/compiler/crates/relay-typegen/tests/generate_flow/mod.rs @@ -22,6 +22,7 @@ use graphql_syntax::parse_executable; use graphql_test_helpers::diagnostics_to_sorted_string; use indexmap::IndexMap; use intern::string_key::Intern; +use relay_codegen::print_provided_variables; use relay_codegen::JsModuleFormat; use relay_config::CustomScalarType; use relay_config::CustomScalarTypeImport; @@ -112,7 +113,7 @@ pub fn transform_fixture(fixture: &Fixture<'_>) -> Result { let operation_strings = operations.into_iter().map(|typegen_operation| { // `normalization` ASTs are present unless we are processing an updatable query // In that case, `reader` ASTs are present. - let op = programs + let op: &Arc = programs .normalization .operation(OperationDefinitionName(typegen_operation.name.item.0)) .unwrap_or_else(|| { @@ -133,6 +134,7 @@ pub fn transform_fixture(fixture: &Fixture<'_>) -> Result { &schema, &project_config, &fragment_locations, + print_provided_variables(&schema, op, &project_config), ) }); diff --git a/compiler/crates/relay-typegen/tests/generate_flow_with_custom_id/mod.rs b/compiler/crates/relay-typegen/tests/generate_flow_with_custom_id/mod.rs index c6e0fbe3d4183..a6dfa2f55c883 100644 --- a/compiler/crates/relay-typegen/tests/generate_flow_with_custom_id/mod.rs +++ b/compiler/crates/relay-typegen/tests/generate_flow_with_custom_id/mod.rs @@ -21,6 +21,7 @@ use graphql_ir::Program; use graphql_syntax::parse_executable; use indexmap::IndexMap; use intern::string_key::Intern; +use relay_codegen::print_provided_variables; use relay_codegen::JsModuleFormat; use relay_config::ProjectConfig; use relay_config::ProjectName; @@ -109,6 +110,7 @@ pub fn transform_fixture(fixture: &Fixture<'_>) -> Result { &schema, &project_config, &fragment_locations, + print_provided_variables(&schema, normalization_operation, &project_config), ) }); diff --git a/compiler/crates/relay-typegen/tests/generate_typescript/mod.rs b/compiler/crates/relay-typegen/tests/generate_typescript/mod.rs index 6ceee34793dfe..9309e7cb0a685 100644 --- a/compiler/crates/relay-typegen/tests/generate_typescript/mod.rs +++ b/compiler/crates/relay-typegen/tests/generate_typescript/mod.rs @@ -20,6 +20,7 @@ use graphql_ir::Program; use graphql_syntax::parse_executable; use indexmap::IndexMap; use intern::string_key::Intern; +use relay_codegen::print_provided_variables; use relay_codegen::JsModuleFormat; use relay_config::CustomScalarType; use relay_config::CustomScalarTypeImport; @@ -103,6 +104,7 @@ pub fn transform_fixture(fixture: &Fixture<'_>) -> Result { &schema, &project_config, &fragment_locations, + print_provided_variables(&schema, normalization_operation, &project_config), ) }); diff --git a/packages/react-relay/__tests__/__generated__/LiveResolversTestWithProvidedVariablesQuery.graphql.js b/packages/react-relay/__tests__/__generated__/LiveResolversTestWithProvidedVariablesQuery.graphql.js index a94aaf820477b..cb1a3a0549188 100644 --- a/packages/react-relay/__tests__/__generated__/LiveResolversTestWithProvidedVariablesQuery.graphql.js +++ b/packages/react-relay/__tests__/__generated__/LiveResolversTestWithProvidedVariablesQuery.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<<8067c02e9ef057a5b535950493770d82>> + * @generated SignedSource<<400f1ebe4cb8a6eb66854479669fefdf>> * @flow * @lightSyntaxTransform * @nogrep @@ -33,17 +33,15 @@ export type LiveResolversTestWithProvidedVariablesQuery = {| response: LiveResolversTestWithProvidedVariablesQuery$data, variables: LiveResolversTestWithProvidedVariablesQuery$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__HelloWorldProviderjs": require('./../../../relay-runtime/store/__tests__/resolvers/HelloWorldProvider') +}: {| +__relay_internal__pv__HelloWorldProviderjs: {| +get: () => string, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__HelloWorldProviderjs": require('./../../../relay-runtime/store/__tests__/resolvers/HelloWorldProvider') -}; - var node/*: ClientRequest*/ = { "fragment": { "argumentDefinitions": [], @@ -122,7 +120,9 @@ var node/*: ClientRequest*/ = { "name": "LiveResolversTestWithProvidedVariablesQuery", "operationKind": "query", "text": null, - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__HelloWorldProviderjs": require('./../../../relay-runtime/store/__tests__/resolvers/HelloWorldProvider') + } } }; diff --git a/packages/react-relay/relay-hooks/__tests__/__generated__/preloadQueryDEPRECATEDTest_ProvidedVarQuery.graphql.js b/packages/react-relay/relay-hooks/__tests__/__generated__/preloadQueryDEPRECATEDTest_ProvidedVarQuery.graphql.js index adc6b146bd2d4..7fa7134a61359 100644 --- a/packages/react-relay/relay-hooks/__tests__/__generated__/preloadQueryDEPRECATEDTest_ProvidedVarQuery.graphql.js +++ b/packages/react-relay/relay-hooks/__tests__/__generated__/preloadQueryDEPRECATEDTest_ProvidedVarQuery.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<<222188c6acc87a632e09a7e966a14432>> + * @generated SignedSource<> * @flow * @lightSyntaxTransform * @nogrep @@ -31,21 +31,19 @@ export type preloadQueryDEPRECATEDTest_ProvidedVarQuery = {| response: preloadQueryDEPRECATEDTest_ProvidedVarQuery$data, variables: preloadQueryDEPRECATEDTest_ProvidedVarQuery$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), + "__relay_internal__pv__RelayProvider_returnsFalserelayprovider": require('./../RelayProvider_returnsFalse.relayprovider') +}: {| +__relay_internal__pv__RelayProvider_returnsFalserelayprovider: {| +get: () => boolean, |}, +__relay_internal__pv__RelayProvider_returnsTruerelayprovider: {| +get: () => boolean, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), - "__relay_internal__pv__RelayProvider_returnsFalserelayprovider": require('./../RelayProvider_returnsFalse.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = { "defaultValue": null, @@ -203,7 +201,10 @@ return { "name": "preloadQueryDEPRECATEDTest_ProvidedVarQuery", "operationKind": "query", "text": "query preloadQueryDEPRECATEDTest_ProvidedVarQuery(\n $id: ID!\n $__relay_internal__pv__RelayProvider_returnsTruerelayprovider: Boolean!\n $__relay_internal__pv__RelayProvider_returnsFalserelayprovider: Boolean!\n) {\n node(id: $id) {\n __typename\n ...preloadQueryDEPRECATEDTest_ProvidedVarFragment\n id\n }\n}\n\nfragment preloadQueryDEPRECATEDTest_ProvidedVarFragment on User {\n name @include(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n firstName @include(if: $__relay_internal__pv__RelayProvider_returnsFalserelayprovider)\n lastName @skip(if: $__relay_internal__pv__RelayProvider_returnsFalserelayprovider)\n username @skip(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), + "__relay_internal__pv__RelayProvider_returnsFalserelayprovider": require('./../RelayProvider_returnsFalse.relayprovider') + } } }; })(); diff --git a/packages/react-relay/relay-hooks/__tests__/__generated__/usePreloadedQueryProvidedVariablesTest_Query.graphql.js b/packages/react-relay/relay-hooks/__tests__/__generated__/usePreloadedQueryProvidedVariablesTest_Query.graphql.js index b6951b0f04581..9d2d1501ed299 100644 --- a/packages/react-relay/relay-hooks/__tests__/__generated__/usePreloadedQueryProvidedVariablesTest_Query.graphql.js +++ b/packages/react-relay/relay-hooks/__tests__/__generated__/usePreloadedQueryProvidedVariablesTest_Query.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<> + * @generated SignedSource<<1bd7619ea2f07d3500636a825112fa19>> * @flow * @lightSyntaxTransform * @nogrep @@ -32,21 +32,19 @@ export type usePreloadedQueryProvidedVariablesTest_Query = {| response: usePreloadedQueryProvidedVariablesTest_Query$data, variables: usePreloadedQueryProvidedVariablesTest_Query$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), + "__relay_internal__pv__RelayProvider_returnsFalserelayprovider": require('./../RelayProvider_returnsFalse.relayprovider') +}: {| +__relay_internal__pv__RelayProvider_returnsFalserelayprovider: {| +get: () => boolean, |}, +__relay_internal__pv__RelayProvider_returnsTruerelayprovider: {| +get: () => boolean, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), - "__relay_internal__pv__RelayProvider_returnsFalserelayprovider": require('./../RelayProvider_returnsFalse.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = { "defaultValue": null, @@ -206,7 +204,10 @@ return { "name": "usePreloadedQueryProvidedVariablesTest_Query", "operationKind": "query", "text": "query usePreloadedQueryProvidedVariablesTest_Query(\n $id: ID!\n $__relay_internal__pv__RelayProvider_returnsTruerelayprovider: Boolean!\n $__relay_internal__pv__RelayProvider_returnsFalserelayprovider: Boolean!\n) {\n node(id: $id) {\n __typename\n id\n ...usePreloadedQueryProvidedVariablesTest_Fragment\n }\n}\n\nfragment usePreloadedQueryProvidedVariablesTest_Fragment on User {\n name @include(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n firstName @include(if: $__relay_internal__pv__RelayProvider_returnsFalserelayprovider)\n lastName @skip(if: $__relay_internal__pv__RelayProvider_returnsFalserelayprovider)\n username @skip(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), + "__relay_internal__pv__RelayProvider_returnsFalserelayprovider": require('./../RelayProvider_returnsFalse.relayprovider') + } } }; })(); diff --git a/packages/react-relay/relay-hooks/__tests__/__generated__/usePreloadedQueryProvidedVariablesTest_badQuery.graphql.js b/packages/react-relay/relay-hooks/__tests__/__generated__/usePreloadedQueryProvidedVariablesTest_badQuery.graphql.js index 5e30e1a2cde3e..3aae2d82cff4d 100644 --- a/packages/react-relay/relay-hooks/__tests__/__generated__/usePreloadedQueryProvidedVariablesTest_badQuery.graphql.js +++ b/packages/react-relay/relay-hooks/__tests__/__generated__/usePreloadedQueryProvidedVariablesTest_badQuery.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<> + * @generated SignedSource<<940e03983e6e001ebaf61ce67f5941e5>> * @flow * @lightSyntaxTransform * @nogrep @@ -31,17 +31,15 @@ export type usePreloadedQueryProvidedVariablesTest_badQuery = {| response: usePreloadedQueryProvidedVariablesTest_badQuery$data, variables: usePreloadedQueryProvidedVariablesTest_badQuery$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__RelayProvider_impurerelayprovider": require('./../RelayProvider_impure.relayprovider') +}: {| +__relay_internal__pv__RelayProvider_impurerelayprovider: {| +get: () => number, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__RelayProvider_impurerelayprovider": require('./../RelayProvider_impure.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = { "defaultValue": null, @@ -162,7 +160,9 @@ return { "name": "usePreloadedQueryProvidedVariablesTest_badQuery", "operationKind": "query", "text": "query usePreloadedQueryProvidedVariablesTest_badQuery(\n $id: ID!\n $__relay_internal__pv__RelayProvider_impurerelayprovider: Float!\n) {\n node(id: $id) {\n __typename\n ...usePreloadedQueryProvidedVariablesTest_badFragment\n id\n }\n}\n\nfragment usePreloadedQueryProvidedVariablesTest_badFragment on User {\n profile_picture(scale: $__relay_internal__pv__RelayProvider_impurerelayprovider) {\n uri\n }\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__RelayProvider_impurerelayprovider": require('./../RelayProvider_impure.relayprovider') + } } }; })(); diff --git a/packages/relay-runtime/store/__tests__/__generated__/RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgManyFragmentsQuery.graphql.js b/packages/relay-runtime/store/__tests__/__generated__/RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgManyFragmentsQuery.graphql.js index 51d2c8413d02b..8fd77d65ae7f1 100644 --- a/packages/relay-runtime/store/__tests__/__generated__/RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgManyFragmentsQuery.graphql.js +++ b/packages/relay-runtime/store/__tests__/__generated__/RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgManyFragmentsQuery.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<<859dd5aabd816b54e16e217f0b1004c3>> + * @generated SignedSource<<6713b0a8e08ed95789878b165ffac985>> * @flow * @lightSyntaxTransform * @nogrep @@ -33,21 +33,19 @@ export type RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgManyFra response: RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgManyFragmentsQuery$data, variables: RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgManyFragmentsQuery$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), + "__relay_internal__pv__RelayProvider_pictureScalerelayprovider": require('./../RelayProvider_pictureScale.relayprovider') +}: {| +__relay_internal__pv__RelayProvider_pictureScalerelayprovider: {| +get: () => number, |}, +__relay_internal__pv__RelayProvider_returnsTruerelayprovider: {| +get: () => boolean, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), - "__relay_internal__pv__RelayProvider_pictureScalerelayprovider": require('./../RelayProvider_pictureScale.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = { "defaultValue": null, @@ -229,7 +227,10 @@ return { "name": "RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgManyFragmentsQuery", "operationKind": "query", "text": "query RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgManyFragmentsQuery(\n $id: ID!\n $__relay_internal__pv__RelayProvider_returnsTruerelayprovider: Boolean!\n $__relay_internal__pv__RelayProvider_pictureScalerelayprovider: Float!\n) {\n node(id: $id) {\n __typename\n ...RelayModernEnvironmentExecuteWithProvidedVariableTest_profile1\n ...RelayModernEnvironmentExecuteWithProvidedVariableTest_profile2\n ...RelayModernEnvironmentExecuteWithProvidedVariableTest_profile3\n id\n }\n}\n\nfragment RelayModernEnvironmentExecuteWithProvidedVariableTest_profile1 on User {\n id\n name @include(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n username @skip(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n profilePicture {\n uri\n }\n}\n\nfragment RelayModernEnvironmentExecuteWithProvidedVariableTest_profile2 on User {\n name @include(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n alternate_name @include(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n}\n\nfragment RelayModernEnvironmentExecuteWithProvidedVariableTest_profile3 on User {\n profile_picture(scale: $__relay_internal__pv__RelayProvider_pictureScalerelayprovider) {\n uri\n }\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), + "__relay_internal__pv__RelayProvider_pictureScalerelayprovider": require('./../RelayProvider_pictureScale.relayprovider') + } } }; })(); diff --git a/packages/relay-runtime/store/__tests__/__generated__/RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgSingleFragmentQuery.graphql.js b/packages/relay-runtime/store/__tests__/__generated__/RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgSingleFragmentQuery.graphql.js index e3bdd40e70445..f426f2dc21593 100644 --- a/packages/relay-runtime/store/__tests__/__generated__/RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgSingleFragmentQuery.graphql.js +++ b/packages/relay-runtime/store/__tests__/__generated__/RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgSingleFragmentQuery.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<> + * @generated SignedSource<<202e4fac8401882f52063c14c4da0afc>> * @flow * @lightSyntaxTransform * @nogrep @@ -31,17 +31,15 @@ export type RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgSingleF response: RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgSingleFragmentQuery$data, variables: RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgSingleFragmentQuery$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider') +}: {| +__relay_internal__pv__RelayProvider_returnsTruerelayprovider: {| +get: () => boolean, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = { "defaultValue": null, @@ -184,7 +182,9 @@ return { "name": "RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgSingleFragmentQuery", "operationKind": "query", "text": "query RelayModernEnvironmentExecuteWithProvidedVariableTest_UserArgSingleFragmentQuery(\n $id: ID!\n $__relay_internal__pv__RelayProvider_returnsTruerelayprovider: Boolean!\n) {\n node(id: $id) {\n __typename\n ...RelayModernEnvironmentExecuteWithProvidedVariableTest_profile1\n id\n }\n}\n\nfragment RelayModernEnvironmentExecuteWithProvidedVariableTest_profile1 on User {\n id\n name @include(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n username @skip(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n profilePicture {\n uri\n }\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider') + } } }; })(); diff --git a/packages/relay-runtime/store/__tests__/__generated__/RelayResponseNormalizerTest_pvQuery.graphql.js b/packages/relay-runtime/store/__tests__/__generated__/RelayResponseNormalizerTest_pvQuery.graphql.js index 700ecbcbff4ef..64cb9cd64628e 100644 --- a/packages/relay-runtime/store/__tests__/__generated__/RelayResponseNormalizerTest_pvQuery.graphql.js +++ b/packages/relay-runtime/store/__tests__/__generated__/RelayResponseNormalizerTest_pvQuery.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<<0bad2ff4004f0eb406a0dbcfa4c86cf5>> + * @generated SignedSource<> * @flow * @lightSyntaxTransform * @nogrep @@ -32,21 +32,19 @@ export type RelayResponseNormalizerTest_pvQuery = {| response: RelayResponseNormalizerTest_pvQuery$data, variables: RelayResponseNormalizerTest_pvQuery$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), + "__relay_internal__pv__RelayProvider_returnsFalserelayprovider": require('./../RelayProvider_returnsFalse.relayprovider') +}: {| +__relay_internal__pv__RelayProvider_returnsFalserelayprovider: {| +get: () => boolean, |}, +__relay_internal__pv__RelayProvider_returnsTruerelayprovider: {| +get: () => boolean, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), - "__relay_internal__pv__RelayProvider_returnsFalserelayprovider": require('./../RelayProvider_returnsFalse.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = { "defaultValue": null, @@ -206,7 +204,10 @@ return { "name": "RelayResponseNormalizerTest_pvQuery", "operationKind": "query", "text": "query RelayResponseNormalizerTest_pvQuery(\n $id: ID!\n $__relay_internal__pv__RelayProvider_returnsTruerelayprovider: Boolean!\n $__relay_internal__pv__RelayProvider_returnsFalserelayprovider: Boolean!\n) {\n node(id: $id) {\n __typename\n id\n ...RelayResponseNormalizerTest_pvFragment\n }\n}\n\nfragment RelayResponseNormalizerTest_pvFragment on User {\n name @include(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n firstName @include(if: $__relay_internal__pv__RelayProvider_returnsFalserelayprovider)\n lastName @skip(if: $__relay_internal__pv__RelayProvider_returnsFalserelayprovider)\n username @skip(if: $__relay_internal__pv__RelayProvider_returnsTruerelayprovider)\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__RelayProvider_returnsTruerelayprovider": require('./../RelayProvider_returnsTrue.relayprovider'), + "__relay_internal__pv__RelayProvider_returnsFalserelayprovider": require('./../RelayProvider_returnsFalse.relayprovider') + } } }; })(); diff --git a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest1Query.graphql.js b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest1Query.graphql.js index e930aa5f9f0e4..ab2803ec94c86 100644 --- a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest1Query.graphql.js +++ b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest1Query.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<<41e083a018213043ae8d87d99a15ce1d>> + * @generated SignedSource<<6703998458a25903621ee13227354a96>> * @flow * @lightSyntaxTransform * @nogrep @@ -29,17 +29,15 @@ export type withProvidedVariablesTest1Query = {| response: withProvidedVariablesTest1Query$data, variables: withProvidedVariablesTest1Query$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider') +}: {| +__relay_internal__pv__provideNumberOfFriendsrelayprovider: {| +get: () => number, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = [ { @@ -152,7 +150,9 @@ return { "name": "withProvidedVariablesTest1Query", "operationKind": "query", "text": "query withProvidedVariablesTest1Query(\n $__relay_internal__pv__provideNumberOfFriendsrelayprovider: Int!\n) {\n node(id: 4) {\n __typename\n ...withProvidedVariablesTest1Fragment\n id\n }\n}\n\nfragment withProvidedVariablesTest1Fragment on User {\n friends(first: $__relay_internal__pv__provideNumberOfFriendsrelayprovider) {\n count\n }\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider') + } } }; })(); diff --git a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest2Query.graphql.js b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest2Query.graphql.js index 2c88a772302b6..7b51233673ed9 100644 --- a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest2Query.graphql.js +++ b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest2Query.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<<930f7fd0c533887865d2503fc6e48d02>> + * @generated SignedSource<<28b3eba1bf961281a612ddc50ead4b1f>> * @flow * @lightSyntaxTransform * @nogrep @@ -31,17 +31,15 @@ export type withProvidedVariablesTest2Query = {| response: withProvidedVariablesTest2Query$data, variables: withProvidedVariablesTest2Query$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider') +}: {| +__relay_internal__pv__provideNumberOfFriendsrelayprovider: {| +get: () => number, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = { "defaultValue": null, @@ -175,7 +173,9 @@ return { "name": "withProvidedVariablesTest2Query", "operationKind": "query", "text": "query withProvidedVariablesTest2Query(\n $includeFriendsCount: Boolean!\n $__relay_internal__pv__provideNumberOfFriendsrelayprovider: Int!\n) {\n node(id: 4) {\n __typename\n ...withProvidedVariablesTest2Fragment_47ZY3u\n id\n }\n}\n\nfragment withProvidedVariablesTest2Fragment_47ZY3u on User {\n friends(first: $__relay_internal__pv__provideNumberOfFriendsrelayprovider) {\n count @include(if: $includeFriendsCount)\n }\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider') + } } }; })(); diff --git a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest3Query.graphql.js b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest3Query.graphql.js index daac06c698ac6..eb7961d1bd5cc 100644 --- a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest3Query.graphql.js +++ b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest3Query.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<<18a39aa5973ba29b7169324c0037ec4c>> + * @generated SignedSource<<5815185ccc4d1a85d36ed17b4f10ec0d>> * @flow * @lightSyntaxTransform * @nogrep @@ -29,21 +29,19 @@ export type withProvidedVariablesTest3Query = {| response: withProvidedVariablesTest3Query$data, variables: withProvidedVariablesTest3Query$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider'), + "__relay_internal__pv__provideIncludeUserNamesrelayprovider": require('./../provideIncludeUserNames.relayprovider') +}: {| +__relay_internal__pv__provideIncludeUserNamesrelayprovider: {| +get: () => boolean, |}, +__relay_internal__pv__provideNumberOfFriendsrelayprovider: {| +get: () => number, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider'), - "__relay_internal__pv__provideIncludeUserNamesrelayprovider": require('./../provideIncludeUserNames.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = [ { @@ -175,7 +173,10 @@ return { "name": "withProvidedVariablesTest3Query", "operationKind": "query", "text": "query withProvidedVariablesTest3Query(\n $__relay_internal__pv__provideNumberOfFriendsrelayprovider: Int!\n $__relay_internal__pv__provideIncludeUserNamesrelayprovider: Boolean!\n) {\n node(id: 4) {\n __typename\n ...withProvidedVariablesTest3Fragment\n id\n }\n}\n\nfragment withProvidedVariablesTest3Fragment on User {\n name @include(if: $__relay_internal__pv__provideIncludeUserNamesrelayprovider)\n friends(first: $__relay_internal__pv__provideNumberOfFriendsrelayprovider) {\n count\n }\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider'), + "__relay_internal__pv__provideIncludeUserNamesrelayprovider": require('./../provideIncludeUserNames.relayprovider') + } } }; })(); diff --git a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest4Query.graphql.js b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest4Query.graphql.js index d741b0bde1c11..6dd528e418ba3 100644 --- a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest4Query.graphql.js +++ b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest4Query.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<<738f0bb0bc84818c73d75e001c580e88>> + * @generated SignedSource<> * @flow * @lightSyntaxTransform * @nogrep @@ -30,21 +30,19 @@ export type withProvidedVariablesTest4Query = {| response: withProvidedVariablesTest4Query$data, variables: withProvidedVariablesTest4Query$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider'), + "__relay_internal__pv__provideIncludeUserNamesrelayprovider": require('./../provideIncludeUserNames.relayprovider') +}: {| +__relay_internal__pv__provideIncludeUserNamesrelayprovider: {| +get: () => boolean, |}, +__relay_internal__pv__provideNumberOfFriendsrelayprovider: {| +get: () => number, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider'), - "__relay_internal__pv__provideIncludeUserNamesrelayprovider": require('./../provideIncludeUserNames.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = [ { @@ -207,7 +205,10 @@ return { "name": "withProvidedVariablesTest4Query", "operationKind": "query", "text": "query withProvidedVariablesTest4Query(\n $__relay_internal__pv__provideNumberOfFriendsrelayprovider: Int!\n $__relay_internal__pv__provideIncludeUserNamesrelayprovider: Boolean!\n) {\n node(id: 4) {\n __typename\n ...withProvidedVariablesTest4Fragment1\n ...withProvidedVariablesTest4Fragment2\n id\n }\n}\n\nfragment withProvidedVariablesTest4Fragment1 on User {\n friends(first: $__relay_internal__pv__provideNumberOfFriendsrelayprovider) {\n count\n edges {\n node {\n name @include(if: $__relay_internal__pv__provideIncludeUserNamesrelayprovider)\n id\n }\n }\n }\n}\n\nfragment withProvidedVariablesTest4Fragment2 on User {\n name @include(if: $__relay_internal__pv__provideIncludeUserNamesrelayprovider)\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__provideNumberOfFriendsrelayprovider": require('./../provideNumberOfFriends.relayprovider'), + "__relay_internal__pv__provideIncludeUserNamesrelayprovider": require('./../provideIncludeUserNames.relayprovider') + } } }; })(); diff --git a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest5Query.graphql.js b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest5Query.graphql.js index b8f0f50e7f08d..d2216f8272afa 100644 --- a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest5Query.graphql.js +++ b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest5Query.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<<4d4d9044120228582912eca1d5a3b57b>> + * @generated SignedSource<<9f59b2fcd357e043b5d5fa94238f3fe2>> * @flow * @lightSyntaxTransform * @nogrep @@ -29,21 +29,19 @@ export type withProvidedVariablesTest5Query = {| response: withProvidedVariablesTest5Query$data, variables: withProvidedVariablesTest5Query$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__provideRandomNumber_invalid1relayprovider": require('./../provideRandomNumber_invalid1.relayprovider'), + "__relay_internal__pv__provideRandomNumber_invalid2relayprovider": require('./../provideRandomNumber_invalid2.relayprovider') +}: {| +__relay_internal__pv__provideRandomNumber_invalid1relayprovider: {| +get: () => number, |}, +__relay_internal__pv__provideRandomNumber_invalid2relayprovider: {| +get: () => number, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__provideRandomNumber_invalid1relayprovider": require('./../provideRandomNumber_invalid1.relayprovider'), - "__relay_internal__pv__provideRandomNumber_invalid2relayprovider": require('./../provideRandomNumber_invalid2.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = [ { @@ -178,7 +176,10 @@ return { "name": "withProvidedVariablesTest5Query", "operationKind": "query", "text": "query withProvidedVariablesTest5Query(\n $__relay_internal__pv__provideRandomNumber_invalid1relayprovider: Float!\n $__relay_internal__pv__provideRandomNumber_invalid2relayprovider: Float!\n) {\n node(id: 4) {\n __typename\n ...withProvidedVariablesTest5Fragment\n id\n }\n}\n\nfragment withProvidedVariablesTest5Fragment on User {\n profile_picture(scale: $__relay_internal__pv__provideRandomNumber_invalid1relayprovider) {\n uri\n }\n other_picture: profile_picture(scale: $__relay_internal__pv__provideRandomNumber_invalid2relayprovider) {\n uri\n }\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__provideRandomNumber_invalid1relayprovider": require('./../provideRandomNumber_invalid1.relayprovider'), + "__relay_internal__pv__provideRandomNumber_invalid2relayprovider": require('./../provideRandomNumber_invalid2.relayprovider') + } } }; })(); diff --git a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest6Query.graphql.js b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest6Query.graphql.js index 92161c7d6f3de..6b3d98efd465a 100644 --- a/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest6Query.graphql.js +++ b/packages/relay-runtime/util/__tests__/__generated__/withProvidedVariablesTest6Query.graphql.js @@ -6,7 +6,7 @@ * * @oncall relay * - * @generated SignedSource<<2dc5f8f1fb7f57f4fbd9ed95c754cf4f>> + * @generated SignedSource<<33a7c304a92c212c1292fd71495c8cb8>> * @flow * @lightSyntaxTransform * @nogrep @@ -29,17 +29,15 @@ export type withProvidedVariablesTest6Query = {| response: withProvidedVariablesTest6Query$data, variables: withProvidedVariablesTest6Query$variables, |}; -type ProvidedVariablesType = {| +({ + "__relay_internal__pv__provideRandomNumber_invalid1relayprovider": require('./../provideRandomNumber_invalid1.relayprovider') +}: {| +__relay_internal__pv__provideRandomNumber_invalid1relayprovider: {| +get: () => number, |}, -|}; +|}); */ -var providedVariablesDefinition/*: ProvidedVariablesType*/ = { - "__relay_internal__pv__provideRandomNumber_invalid1relayprovider": require('./../provideRandomNumber_invalid1.relayprovider') -}; - var node/*: ConcreteRequest*/ = (function(){ var v0 = [ { @@ -152,7 +150,9 @@ return { "name": "withProvidedVariablesTest6Query", "operationKind": "query", "text": "query withProvidedVariablesTest6Query(\n $__relay_internal__pv__provideRandomNumber_invalid1relayprovider: Float!\n) {\n node(id: 4) {\n __typename\n ...withProvidedVariablesTest6Fragment\n id\n }\n}\n\nfragment withProvidedVariablesTest6Fragment on User {\n profile_picture(scale: $__relay_internal__pv__provideRandomNumber_invalid1relayprovider) {\n uri\n }\n}\n", - "providedVariables": providedVariablesDefinition + "providedVariables": { + "__relay_internal__pv__provideRandomNumber_invalid1relayprovider": require('./../provideRandomNumber_invalid1.relayprovider') + } } }; })();