summaryrefslogtreecommitdiff
path: root/cli/doc/parser.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-08-18 00:15:04 +0200
committerGitHub <noreply@github.com>2020-08-18 00:15:04 +0200
commit9f1dcc1a32cab4d18fbb07f87ea6a64ba2711226 (patch)
tree0df220eda9bd546ad105d89e462f6c44fe5fe059 /cli/doc/parser.rs
parent93e2bfe22e5cc782e7d502616dad1fd70d26ae37 (diff)
refactor(doc): add helper functions for DocNode (#7083)
Diffstat (limited to 'cli/doc/parser.rs')
-rw-r--r--cli/doc/parser.rs168
1 files changed, 15 insertions, 153 deletions
diff --git a/cli/doc/parser.rs b/cli/doc/parser.rs
index 2247c6877..8950ad74b 100644
--- a/cli/doc/parser.rs
+++ b/cli/doc/parser.rs
@@ -240,20 +240,12 @@ impl DocParser {
imported: maybe_imported_name,
};
- let doc_node = DocNode {
- kind: DocNodeKind::Import,
+ let doc_node = DocNode::import(
name,
- location: location.clone(),
- js_doc: js_doc.clone(),
- import_def: Some(import_def),
- class_def: None,
- function_def: None,
- variable_def: None,
- enum_def: None,
- type_alias_def: None,
- namespace_def: None,
- interface_def: None,
- };
+ location.clone(),
+ js_doc.clone(),
+ import_def,
+ );
imports.push(doc_node);
}
@@ -284,40 +276,14 @@ impl DocParser {
DefaultDecl::Class(class_expr) => {
let class_def =
crate::doc::class::class_to_class_def(self, &class_expr.class);
- DocNode {
- kind: DocNodeKind::Class,
- name,
- location,
- js_doc,
- class_def: Some(class_def),
- function_def: None,
- variable_def: None,
- enum_def: None,
- type_alias_def: None,
- namespace_def: None,
- interface_def: None,
- import_def: None,
- }
+ DocNode::class(name, location, js_doc, class_def)
}
DefaultDecl::Fn(fn_expr) => {
let function_def = crate::doc::function::function_to_function_def(
self,
&fn_expr.function,
);
- DocNode {
- kind: DocNodeKind::Function,
- name,
- location,
- js_doc,
- class_def: None,
- function_def: Some(function_def),
- variable_def: None,
- enum_def: None,
- type_alias_def: None,
- namespace_def: None,
- interface_def: None,
- import_def: None,
- }
+ DocNode::function(name, location, js_doc, function_def)
}
DefaultDecl::TsInterfaceDecl(interface_decl) => {
let (_, interface_def) =
@@ -325,20 +291,7 @@ impl DocParser {
self,
interface_decl,
);
- DocNode {
- kind: DocNodeKind::Interface,
- name,
- location,
- js_doc,
- class_def: None,
- function_def: None,
- variable_def: None,
- enum_def: None,
- type_alias_def: None,
- namespace_def: None,
- interface_def: Some(interface_def),
- import_def: None,
- }
+ DocNode::interface(name, location, js_doc, interface_def)
}
};
@@ -371,20 +324,7 @@ impl DocParser {
let (name, class_def) =
super::class::get_doc_for_class_decl(self, class_decl);
let (js_doc, location) = self.details_for_span(class_decl.class.span);
- Some(DocNode {
- kind: DocNodeKind::Class,
- name,
- location,
- js_doc,
- class_def: Some(class_def),
- function_def: None,
- variable_def: None,
- enum_def: None,
- type_alias_def: None,
- namespace_def: None,
- interface_def: None,
- import_def: None,
- })
+ Some(DocNode::class(name, location, js_doc, class_def))
}
Decl::Fn(fn_decl) => {
if !self.private && !fn_decl.declare {
@@ -393,20 +333,7 @@ impl DocParser {
let (name, function_def) =
super::function::get_doc_for_fn_decl(self, fn_decl);
let (js_doc, location) = self.details_for_span(fn_decl.function.span);
- Some(DocNode {
- kind: DocNodeKind::Function,
- name,
- location,
- js_doc,
- function_def: Some(function_def),
- class_def: None,
- variable_def: None,
- enum_def: None,
- type_alias_def: None,
- namespace_def: None,
- interface_def: None,
- import_def: None,
- })
+ Some(DocNode::function(name, location, js_doc, function_def))
}
Decl::Var(var_decl) => {
if !self.private && !var_decl.declare {
@@ -414,20 +341,7 @@ impl DocParser {
}
let (name, var_def) = super::variable::get_doc_for_var_decl(var_decl);
let (js_doc, location) = self.details_for_span(var_decl.span);
- Some(DocNode {
- kind: DocNodeKind::Variable,
- name,
- location,
- js_doc,
- variable_def: Some(var_def),
- function_def: None,
- class_def: None,
- enum_def: None,
- type_alias_def: None,
- namespace_def: None,
- interface_def: None,
- import_def: None,
- })
+ Some(DocNode::variable(name, location, js_doc, var_def))
}
Decl::TsInterface(ts_interface_decl) => {
if !self.private && !ts_interface_decl.declare {
@@ -439,20 +353,7 @@ impl DocParser {
ts_interface_decl,
);
let (js_doc, location) = self.details_for_span(ts_interface_decl.span);
- Some(DocNode {
- kind: DocNodeKind::Interface,
- name,
- location,
- js_doc,
- interface_def: Some(interface_def),
- variable_def: None,
- function_def: None,
- class_def: None,
- enum_def: None,
- type_alias_def: None,
- namespace_def: None,
- import_def: None,
- })
+ Some(DocNode::interface(name, location, js_doc, interface_def))
}
Decl::TsTypeAlias(ts_type_alias) => {
if !self.private && !ts_type_alias.declare {
@@ -464,20 +365,7 @@ impl DocParser {
ts_type_alias,
);
let (js_doc, location) = self.details_for_span(ts_type_alias.span);
- Some(DocNode {
- kind: DocNodeKind::TypeAlias,
- name,
- location,
- js_doc,
- type_alias_def: Some(type_alias_def),
- interface_def: None,
- variable_def: None,
- function_def: None,
- class_def: None,
- enum_def: None,
- namespace_def: None,
- import_def: None,
- })
+ Some(DocNode::type_alias(name, location, js_doc, type_alias_def))
}
Decl::TsEnum(ts_enum) => {
if !self.private && !ts_enum.declare {
@@ -486,20 +374,7 @@ impl DocParser {
let (name, enum_def) =
super::r#enum::get_doc_for_ts_enum_decl(self, ts_enum);
let (js_doc, location) = self.details_for_span(ts_enum.span);
- Some(DocNode {
- kind: DocNodeKind::Enum,
- name,
- location,
- js_doc,
- enum_def: Some(enum_def),
- type_alias_def: None,
- interface_def: None,
- variable_def: None,
- function_def: None,
- class_def: None,
- namespace_def: None,
- import_def: None,
- })
+ Some(DocNode::r#enum(name, location, js_doc, enum_def))
}
Decl::TsModule(ts_module) => {
if !self.private && !ts_module.declare {
@@ -508,20 +383,7 @@ impl DocParser {
let (name, namespace_def) =
super::namespace::get_doc_for_ts_module(self, ts_module);
let (js_doc, location) = self.details_for_span(ts_module.span);
- Some(DocNode {
- kind: DocNodeKind::Namespace,
- name,
- location,
- js_doc,
- namespace_def: Some(namespace_def),
- enum_def: None,
- type_alias_def: None,
- interface_def: None,
- variable_def: None,
- function_def: None,
- class_def: None,
- import_def: None,
- })
+ Some(DocNode::namespace(name, location, js_doc, namespace_def))
}
}
}