From 1802a7d72082a3e7c094cd9e4ae11697715252be Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Mon, 30 Jan 2023 09:55:54 -0800 Subject: [PATCH] Emit forced type assertions for ESModules Reviewed By: alunyov Differential Revision: D42792490 fbshipit-source-id: 1dbfdfa82bb2a23b34edfcd76fcb62aea644d9a8 --- .../src/artifact_content/content.rs | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/compiler/crates/relay-compiler/src/artifact_content/content.rs b/compiler/crates/relay-compiler/src/artifact_content/content.rs index b5c82b3360525..7230ad91cae9b 100644 --- a/compiler/crates/relay-compiler/src/artifact_content/content.rs +++ b/compiler/crates/relay-compiler/src/artifact_content/content.rs @@ -824,22 +824,22 @@ fn write_export_generated_node( variable_node: &str, forced_type: Option, ) -> FmtResult { - if typegen_config.eager_es_modules { - writeln!(section, "export default {};", variable_node) - } else { - match (typegen_config.language, forced_type) { - (TypegenLanguage::Flow, None) | (TypegenLanguage::JavaScript, _) => { - writeln!(section, "module.exports = {};", variable_node) - } - (TypegenLanguage::Flow, Some(forced_type)) => writeln!( - section, - "module.exports = (({}/*: any*/)/*: {}*/);", - variable_node, forced_type - ), - (TypegenLanguage::TypeScript, _) => { - writeln!(section, "export default {};", variable_node) - } + let export_value = match (typegen_config.language, forced_type) { + (TypegenLanguage::Flow, None) | (TypegenLanguage::JavaScript, _) => { + variable_node.to_string() + } + (TypegenLanguage::TypeScript, _) => { + // TODO: Support force_type for TypeScript + variable_node.to_string() } + (TypegenLanguage::Flow, Some(forced_type)) => { + format!("(({}/*: any*/)/*: {}*/)", variable_node, forced_type) + } + }; + if typegen_config.eager_es_modules || typegen_config.language == TypegenLanguage::TypeScript { + writeln!(section, "export default {};", export_value) + } else { + writeln!(section, "module.exports = {};", export_value) } }