1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3pub extern crate swc_allocator as alloc;
4
5#[cfg(feature = "swc_atoms")]
6#[cfg_attr(docsrs, doc(cfg(feature = "swc_atoms")))]
7pub use swc_atoms as atoms;
8
9#[cfg(feature = "ecma_quote")]
11#[cfg_attr(docsrs, doc(cfg(feature = "ecma_quote")))]
12pub mod quote;
13
14#[cfg(feature = "ecma_quote")]
16#[cfg_attr(docsrs, doc(cfg(feature = "ecma_quote")))]
17#[doc(hidden)]
18pub extern crate swc_ecma_quote_macros;
19
20#[cfg(any(
22 all(
23 docsrs,
24 any(
25 feature = "__common_plugin_transform",
26 feature = "__plugin_transform_host"
27 )
28 ),
29 feature = "__common_plugin_transform",
30 feature = "__plugin_transform_host"
31))]
32#[cfg_attr(
33 docsrs,
34 doc(cfg(any(
35 feature = "__common_plugin_transform",
36 feature = "__plugin_transform_host"
37 )))
38)]
39pub mod plugin;
40
41#[cfg(feature = "__ecma")]
42#[cfg_attr(docsrs, doc(cfg(feature = "__ecma")))]
43pub mod ecma {
44 #[cfg(feature = "ecma_ast")]
45 #[cfg_attr(docsrs, doc(cfg(feature = "ecma_ast")))]
46 pub mod ast {
47 pub use swc_ecma_ast::*;
48 }
49 #[cfg(feature = "ecma_ast")]
50 #[cfg_attr(docsrs, doc(cfg(feature = "ecma_ast")))]
51 pub mod atoms {
52 pub use swc_atoms::*;
53 }
54 #[cfg(any(feature = "__ecma_transforms", feature = "__testing_transform"))]
56 #[cfg_attr(
57 docsrs,
58 doc(cfg(any(feature = "__ecma_transforms", feature = "__testing_transform")))
59 )]
60 pub mod transforms {
61 pub mod base {
62 pub use swc_ecma_transforms_base::*;
63 }
64 #[cfg(feature = "ecma_transforms_optimization")]
65 #[cfg_attr(docsrs, doc(cfg(feature = "transforms_optimization")))]
66 pub mod optimization {
67 pub use swc_ecma_transforms_optimization::*;
68 }
69 #[cfg(feature = "ecma_transforms_react")]
70 #[cfg_attr(docsrs, doc(cfg(feature = "transforms_react")))]
71 pub mod react {
72 pub use swc_ecma_transforms_react::*;
73 }
74 #[cfg(feature = "ecma_transforms_typescript")]
75 #[cfg_attr(docsrs, doc(cfg(feature = "transforms_typescript")))]
76 pub mod typescript {
77 pub use swc_ecma_transforms_typescript::*;
78 }
79 #[cfg(feature = "ecma_transforms_module")]
80 #[cfg_attr(docsrs, doc(cfg(feature = "transforms_module")))]
81 pub mod module {
82 pub use swc_ecma_transforms_module::*;
83 }
84 #[cfg(feature = "ecma_transforms_proposal")]
85 #[cfg_attr(docsrs, doc(cfg(feature = "transforms_proposal")))]
86 pub mod proposal {
87 pub use swc_ecma_transforms_proposal::*;
88 }
89 #[cfg(feature = "ecma_transforms_compat")]
90 #[cfg_attr(docsrs, doc(cfg(feature = "transforms_compat")))]
91 pub mod compat {
92 pub use swc_ecma_transforms_compat::*;
93 }
94 #[cfg(feature = "__testing_transform")]
95 #[cfg_attr(docsrs, doc(cfg(feature = "__testing_transform")))]
96 pub mod testing {
97 pub use swc_ecma_transforms_testing::*;
98 }
99 }
100
101 #[cfg(feature = "__ecma_loader")]
103 #[cfg_attr(docsrs, doc(cfg(feature = "__ecma_loader")))]
104 pub mod loader {
105 pub use swc_ecma_loader::*;
106 }
107
108 #[cfg(feature = "__parser")]
109 #[cfg_attr(docsrs, doc(cfg(feature = "__parser")))]
110 pub mod parser {
111 pub use swc_ecma_parser::*;
112 }
113
114 #[cfg(feature = "ecma_codegen")]
115 #[cfg_attr(docsrs, doc(cfg(feature = "ecma_codegen")))]
116 pub mod codegen {
117 pub use swc_ecma_codegen::*;
118 }
119
120 #[cfg(feature = "ecma_minifier")]
121 #[cfg_attr(docsrs, doc(cfg(feature = "ecma_minifier")))]
122 pub mod minifier {
123 pub use swc_ecma_minifier::*;
124 }
125
126 #[cfg(feature = "ecma_preset_env")]
127 #[cfg_attr(docsrs, doc(cfg(feature = "ecma_preset_env")))]
128 pub mod preset_env {
129 pub use swc_ecma_preset_env::*;
130 }
131
132 #[cfg(feature = "ecma_usage_analyzer")]
133 #[cfg_attr(docsrs, doc(cfg(feature = "ecma_usage_analyzer")))]
134 pub mod usage_analyzer {
135 pub use swc_ecma_usage_analyzer::*;
136 }
137
138 #[cfg(feature = "ecma_lints")]
140 #[cfg_attr(docsrs, doc(cfg(feature = "ecma_lints")))]
141 pub mod lints {
142 pub use swc_ecma_lints::*;
143 }
144
145 #[cfg(feature = "__visit")]
147 #[cfg_attr(docsrs, doc(cfg(feature = "__visit")))]
148 pub mod visit {
149 pub use swc_ecma_visit::*;
150 }
151
152 #[cfg(feature = "__utils")]
153 #[cfg_attr(docsrs, doc(cfg(feature = "__utils")))]
154 pub mod utils {
155 pub use swc_ecma_utils::*;
156 }
157
158 #[cfg(feature = "swc_ecma_react_compiler")]
159 #[cfg_attr(docsrs, doc(cfg(feature = "swc_ecma_react_compiler")))]
160 pub extern crate swc_ecma_react_compiler as react_compiler;
161}
162
163#[cfg(feature = "__base")]
165#[cfg_attr(docsrs, doc(cfg(feature = "__base")))]
166pub mod base {
167 pub use swc::*;
168}
169
170#[cfg(feature = "__common")]
172#[cfg_attr(docsrs, doc(cfg(feature = "__common")))]
173pub mod common {
174 pub use swc_common::*;
175}
176
177#[cfg(feature = "__plugin_transform_host")]
179#[cfg_attr(docsrs, doc(cfg(feature = "__plugin_transform_host")))]
180pub mod plugin_runner {
181 pub use swc_plugin_runner::*;
182}
183
184#[cfg(feature = "trace_macro")]
186#[cfg_attr(docsrs, doc(cfg(feature = "trace_macro")))]
187pub mod trace_macro {
188 pub use swc_trace_macro::*;
189}
190
191#[cfg(feature = "transform_common")]
192#[cfg_attr(docsrs, doc(cfg(feature = "transform_common")))]
193pub extern crate swc_transform_common as transform_common;
194
195#[cfg(feature = "typescript")]
196#[cfg_attr(docsrs, doc(cfg(feature = "typescript")))]
197pub mod typescript {
198 pub use swc_typescript::*;
199}
200
201#[cfg(feature = "__bundler")]
203#[cfg_attr(docsrs, doc(cfg(feature = "__bundler")))]
204pub mod bundler {
205 pub use swc_bundler::*;
206
207 #[cfg(any(feature = "bundler_node_v1", feature = "bundler_node_v2"))]
208 #[cfg_attr(
209 docsrs,
210 doc(cfg(any(feature = "bundler_node_v1", feature = "bundler_node_v2")))
211 )]
212 pub mod node {
213 pub use swc_node_bundler::*;
214 }
215}
216
217#[cfg(feature = "__binding_macros")]
218#[cfg_attr(docsrs, doc(cfg(feature = "__binding_macros")))]
219pub mod binding_macros {
220 pub use binding_macros::*;
221}
222
223#[cfg(feature = "base_node")]
224#[cfg_attr(docsrs, doc(cfg(feature = "base_node")))]
225pub mod node {
226 pub use swc_nodejs_common::*;
227}
228
229#[cfg(feature = "__css")]
230#[cfg_attr(docsrs, doc(cfg(feature = "__css")))]
231pub mod css {
232 #[cfg(feature = "css_ast")]
233 #[cfg_attr(docsrs, doc(cfg(feature = "css_ast")))]
234 pub mod ast {
235 pub use swc_css_ast::*;
236 }
237
238 #[cfg(feature = "css_modules")]
239 #[cfg_attr(docsrs, doc(cfg(feature = "css_modules")))]
240 pub mod modules {
241 pub use swc_css_modules::*;
242 }
243
244 #[cfg(feature = "css_codegen")]
245 #[cfg_attr(docsrs, doc(cfg(feature = "css_codegen")))]
246 pub mod codegen {
247 pub use swc_css_codegen::*;
248 }
249
250 #[cfg(feature = "css_compat")]
251 #[cfg_attr(docsrs, doc(cfg(feature = "css_compat")))]
252 pub mod compat {
253 pub use swc_css_compat::*;
254 }
255
256 #[cfg(feature = "css_minifier")]
257 #[cfg_attr(docsrs, doc(cfg(feature = "css_minifier")))]
258 pub mod minifier {
259 pub use swc_css_minifier::*;
260 }
261
262 #[cfg(feature = "css_parser")]
263 #[cfg_attr(docsrs, doc(cfg(feature = "css_parser")))]
264 pub mod parser {
265 pub use swc_css_parser::*;
266 }
267
268 #[cfg(feature = "css_utils")]
269 #[cfg_attr(docsrs, doc(cfg(feature = "css_utils")))]
270 pub mod utils {
271 pub use swc_css_utils::*;
272 }
273
274 #[cfg(feature = "css_visit")]
275 #[cfg_attr(docsrs, doc(cfg(feature = "css_visit")))]
276 pub mod visit {
277 pub use swc_css_visit::*;
278 }
279
280 #[cfg(feature = "css_prefixer")]
281 #[cfg_attr(docsrs, doc(cfg(feature = "css_prefixer")))]
282 pub mod prefixer {
283 pub use swc_css_prefixer::*;
284 }
285}
286
287#[cfg_attr(docsrs, doc(cfg(feature = "swc_config")))]
288#[cfg(feature = "swc_config")]
289pub extern crate swc_config as config;
290
291#[cfg(feature = "testing")]
295#[cfg_attr(docsrs, doc(cfg(feature = "testing")))]
296pub mod testing {
297 pub use testing::*;
298}
299
300#[cfg(feature = "allocator_node")]
301#[cfg_attr(docsrs, doc(cfg(feature = "allocator_node")))]
302extern crate swc_malloc;
303
304pub static SWC_CORE_VERSION: &str = include_str!(concat!(env!("OUT_DIR"), "/core_pkg_version.txt"));
305
306mod __diagnostics;
307pub mod diagnostics {
308 use crate::__diagnostics::{GIT_SHA, PKG_SEMVER_FALLBACK};
309
310 #[derive(Debug)]
311 pub struct CoreEngineDiagnostics {
312 pub package_semver: String,
314 pub git_sha: String,
316 pub cargo_features: String,
318 }
319
320 pub fn get_core_engine_diagnostics() -> CoreEngineDiagnostics {
322 CoreEngineDiagnostics {
323 package_semver: option_env!("VERGEN_BUILD_SEMVER")
324 .unwrap_or_else(|| PKG_SEMVER_FALLBACK)
325 .to_string(),
326 git_sha: GIT_SHA.to_string(),
327 cargo_features: option_env!("VERGEN_CARGO_FEATURES")
328 .unwrap_or_else(|| "Unavailable to query")
329 .to_string(),
330 }
331 }
332}