From 86fd0c66a645a3dd262e57e330bb7fbe4663e468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 7 Apr 2020 19:47:06 +0200 Subject: feat(doc): handle basic reexports (#4625) --- cli/doc/node.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'cli/doc/node.rs') 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 @@ -46,6 +46,35 @@ impl Into 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), +} + +#[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, + pub reexports: Vec, +} + #[derive(Debug, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct DocNode { -- cgit v1.2.3