diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-05-06 14:48:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-06 14:48:48 +0200 |
commit | e18aaf49cfc1dfa8aaa361e343556d1d9eb7251a (patch) | |
tree | 3a6f408fb84e54dce7b51fa95a00dac2d9fcab49 /cli/doc/class.rs | |
parent | e513751ee9a9f9d737a0513b5bb0fac06274ede0 (diff) |
feat: deno doc handles default exports (#4873)
Diffstat (limited to 'cli/doc/class.rs')
-rw-r--r-- | cli/doc/class.rs | 34 |
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) } |