summaryrefslogtreecommitdiff
path: root/cli/doc/class.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/doc/class.rs')
-rw-r--r--cli/doc/class.rs34
1 files changed, 20 insertions, 14 deletions
diff --git a/cli/doc/class.rs b/cli/doc/class.rs
index 2370dd18f..8ebb49f65 100644
--- a/cli/doc/class.rs
+++ b/cli/doc/class.rs
@@ -85,15 +85,15 @@ fn prop_name_to_string(
}
}
-pub fn get_doc_for_class_decl(
+pub fn class_to_class_def(
doc_parser: &DocParser,
- class_decl: &swc_ecma_ast::ClassDecl,
-) -> (String, ClassDef) {
+ class: &swc_ecma_ast::Class,
+) -> ClassDef {
let mut constructors = vec![];
let mut methods = vec![];
let mut properties = vec![];
- let extends: Option<String> = match &class_decl.class.super_class {
+ let extends: Option<String> = match &class.super_class {
Some(boxed) => {
use crate::swc_ecma_ast::Expr;
let expr: &Expr = &**boxed;
@@ -105,14 +105,13 @@ pub fn get_doc_for_class_decl(
None => None,
};
- let implements: Vec<String> = class_decl
- .class
+ let implements: Vec<String> = class
.implements
.iter()
.map(|expr| ts_entity_name_to_name(&expr.expr))
.collect();
- for member in &class_decl.class.body {
+ for member in &class.body {
use crate::swc_ecma_ast::ClassMember::*;
match member {
@@ -207,19 +206,26 @@ pub fn get_doc_for_class_decl(
}
}
- let type_params = maybe_type_param_decl_to_type_param_defs(
- class_decl.class.type_params.as_ref(),
- );
- let class_name = class_decl.ident.sym.to_string();
- let class_def = ClassDef {
- is_abstract: class_decl.class.is_abstract,
+ let type_params =
+ maybe_type_param_decl_to_type_param_defs(class.type_params.as_ref());
+
+ ClassDef {
+ is_abstract: class.is_abstract,
extends,
implements,
constructors,
properties,
methods,
type_params,
- };
+ }
+}
+
+pub fn get_doc_for_class_decl(
+ doc_parser: &DocParser,
+ class_decl: &swc_ecma_ast::ClassDecl,
+) -> (String, ClassDef) {
+ let class_name = class_decl.ident.sym.to_string();
+ let class_def = class_to_class_def(doc_parser, &class_decl.class);
(class_name, class_def)
}