1use swc_common::{
2 errors::{ColorConfig, Handler},
3 sync::Lrc,
4 FileName, SourceMap,
5};
6
7use swc_ecmascript::parser::{lexer::Lexer, Capturing, Parser, StringInput, Syntax};
8
9use crate::codegen::react::ReactCodgen;
10pub fn code(st: &str) {
11 let cm: Lrc<SourceMap> = Default::default();
12 let handler = Handler::with_tty_emitter(ColorConfig::Auto, true, false, Some(cm.clone()));
13 let fm = cm.new_source_file(FileName::Custom("test.js".into()), st.into());
14
15 let lexer = Lexer::new(
16 Syntax::Typescript(Default::default()),
17 Default::default(),
18 StringInput::from(&*fm),
19 None,
20 );
21
22 let capturing = Capturing::new(lexer);
23
24 let mut parser = Parser::new_from(capturing);
25
26 for e in parser.take_errors() {
27 e.into_diagnostic(&handler).emit();
28 }
29
30 let module = parser
31 .parse_typescript_module()
32 .map_err(|e| e.into_diagnostic(&handler).emit())
33 .expect("Failed to parse module.");
34 let reactcodegen = ReactCodgen::new(module.clone());
35 let i = reactcodegen.parse_react();
36 println!(" {:#?} {}", &module, i)
37}