mod type_environment;
pub use crate::codegen::type_context::{TypeContext, SwcTypeKind, classify_swc_type, map_reluxscript_to_swc};
pub use type_environment::TypeEnvironment;
pub use crate::mapping::{get_field_mapping, FieldMapping};
pub fn get_typed_field_mapping(
node_type: &str,
field_name: &str,
) -> Option<&'static FieldMapping> {
get_field_mapping(node_type, field_name)
}
pub fn infer_expected_variant(
base_type: &str,
field_name: &str,
) -> Option<String> {
let mapping = get_field_mapping(base_type, field_name)?;
if mapping.swc_type.contains("Expr") && !mapping.swc_type.contains("Box<") {
if field_name == "name" || field_name == "id" {
return Some("Ident".to_string());
}
}
None
}