summaryrefslogtreecommitdiff
path: root/cli/doc/interface.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/doc/interface.rs')
-rw-r--r--cli/doc/interface.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/cli/doc/interface.rs b/cli/doc/interface.rs
index 0e4173d18..dd9acc650 100644
--- a/cli/doc/interface.rs
+++ b/cli/doc/interface.rs
@@ -4,6 +4,7 @@ use serde::Serialize;
use super::params::ts_fn_param_to_param_def;
use super::parser::DocParser;
+use super::ts_type::ts_entity_name_to_name;
use super::ts_type::ts_type_ann_to_def;
use super::ts_type::TsTypeDef;
use super::ts_type_param::maybe_type_param_decl_to_type_param_defs;
@@ -49,7 +50,7 @@ pub struct InterfaceCallSignatureDef {
#[derive(Debug, Serialize, Clone)]
#[serde(rename_all = "camelCase")]
pub struct InterfaceDef {
- // TODO(bartlomieju): extends
+ pub extends: Vec<String>,
pub methods: Vec<InterfaceMethodDef>,
pub properties: Vec<InterfacePropertyDef>,
pub call_signatures: Vec<InterfaceCallSignatureDef>,
@@ -201,7 +202,14 @@ pub fn get_doc_for_ts_interface_decl(
interface_decl.type_params.as_ref(),
);
+ let extends: Vec<String> = interface_decl
+ .extends
+ .iter()
+ .map(|expr| ts_entity_name_to_name(&expr.expr))
+ .collect();
+
let interface_def = InterfaceDef {
+ extends,
methods,
properties,
call_signatures,