23 lines
753 B
Rust
23 lines
753 B
Rust
use oxc_ast::ast::*;
|
|
use anyhow::{Result, anyhow};
|
|
|
|
pub fn get_callee_name(expr: &Expression) -> Result<String> {
|
|
match expr {
|
|
Expression::Identifier(ident) => Ok(ident.name.to_string()),
|
|
Expression::StaticMemberExpression(member) => {
|
|
let obj = get_callee_name_from_member_obj(&member.object)?;
|
|
let prop = member.property.name.to_string();
|
|
Ok(format!("{}.{}", obj, prop))
|
|
}
|
|
_ => Err(anyhow!("Unsupported callee expression")),
|
|
}
|
|
}
|
|
|
|
pub fn get_callee_name_from_member_obj(expr: &Expression) -> Result<String> {
|
|
if let Expression::Identifier(ident) = expr {
|
|
Ok(ident.name.to_string())
|
|
} else {
|
|
Err(anyhow!("Unsupported member object expression"))
|
|
}
|
|
}
|