summaryrefslogtreecommitdiff
path: root/cli/doc/node.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-04-07 19:47:06 +0200
committerGitHub <noreply@github.com>2020-04-07 19:47:06 +0200
commit86fd0c66a645a3dd262e57e330bb7fbe4663e468 (patch)
treecedd0b8e4b759de8f675467ebf7771a1eea0f525 /cli/doc/node.rs
parent51f5276e8cbce89f396458e754d8f31c11fbf1ec (diff)
feat(doc): handle basic reexports (#4625)
Diffstat (limited to 'cli/doc/node.rs')
-rw-r--r--cli/doc/node.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/cli/doc/node.rs b/cli/doc/node.rs
index e1e83ad0d..1be3ba7b1 100644
--- a/cli/doc/node.rs
+++ b/cli/doc/node.rs
@@ -48,6 +48,35 @@ impl Into<Location> for swc_common::Loc {
#[derive(Debug, Serialize, Clone)]
#[serde(rename_all = "camelCase")]
+pub enum ReexportKind {
+ /// export * from "./path/to/module.js";
+ All,
+ /// export * as someNamespace from "./path/to/module.js";
+ Namespace(String),
+ /// export default from "./path/to/module.js";
+ Default,
+ /// (identifier, optional alias)
+ /// export { foo } from "./path/to/module.js";
+ /// export { foo as bar } from "./path/to/module.js";
+ Named(String, Option<String>),
+}
+
+#[derive(Debug, Serialize, Clone)]
+#[serde(rename_all = "camelCase")]
+pub struct Reexport {
+ pub kind: ReexportKind,
+ pub src: String,
+}
+
+#[derive(Debug, Serialize, Clone)]
+#[serde(rename_all = "camelCase")]
+pub struct ModuleDoc {
+ pub exports: Vec<DocNode>,
+ pub reexports: Vec<Reexport>,
+}
+
+#[derive(Debug, Serialize, Clone)]
+#[serde(rename_all = "camelCase")]
pub struct DocNode {
pub kind: DocNodeKind,
pub name: String,