jsx-one 0.0.1

1 Code base, 10 frameworks
Documentation
use swc_common::{
    errors::{ColorConfig, Handler},
    sync::Lrc,
    FileName, SourceMap,
};

use swc_ecmascript::parser::{lexer::Lexer, Capturing, Parser, StringInput, Syntax};

use crate::codegen::react::ReactCodgen;
pub fn code(st: &str) {
    let cm: Lrc<SourceMap> = Default::default();
    let handler = Handler::with_tty_emitter(ColorConfig::Auto, true, false, Some(cm.clone()));
    let fm = cm.new_source_file(FileName::Custom("test.js".into()), st.into());

    let lexer = Lexer::new(
        Syntax::Typescript(Default::default()),
        Default::default(),
        StringInput::from(&*fm),
        None,
    );

    let capturing = Capturing::new(lexer);

    let mut parser = Parser::new_from(capturing);

    for e in parser.take_errors() {
        e.into_diagnostic(&handler).emit();
    }

    let module = parser
        .parse_typescript_module()
        .map_err(|e| e.into_diagnostic(&handler).emit())
        .expect("Failed to parse module.");
    let reactcodegen = ReactCodgen::new(module.clone());
    let i = reactcodegen.parse_react();
    println!(" {:#?} {}", &module, i)
}