swc_ecma_transforms_react 48.0.0

rust port of babel and closure compiler.
Documentation
use swc_common::FilePathMapping;
use swc_ecma_transforms_testing::{test, test_exec};

use super::*;

fn tr() -> impl Pass {
    let cm = Lrc::new(SourceMap::new(FilePathMapping::empty()));
    jsx_src(true, cm)
}

test_exec!(
    ignore,
    ::swc_ecma_parser::Syntax::Es(::swc_ecma_parser::EsSyntax {
        jsx: true,
        ..Default::default()
    }),
    |_| tr(),
    basic_sample,
    r#"
var actual = transform(
  'var x = <sometag />',
  Object.assign({}, opts, { filename: '/fake/path/mock.js' })
).code;

var expected = multiline([
  'var _jsxFileName = "/fake/path/mock.js";',
  'var x = <sometag __source={{',
  '  fileName: _jsxFileName,',
  '  lineNumber: 1',
  '}} />;',
]);

expect(actual).toBe(expected);
"#
);

test!(
    module,
    ::swc_ecma_parser::Syntax::Es(::swc_ecma_parser::EsSyntax {
        jsx: true,
        ..Default::default()
    }),
    |_| tr(),
    no_jsx,
    r#"var x = 42;"#
);

test_exec!(
    ignore,
    ::swc_ecma_parser::Syntax::Es(::swc_ecma_parser::EsSyntax {
        jsx: true,
        ..Default::default()
    }),
    |_| tr(),
    with_source,
    r#"
var actual = transform(
  'var x = <sometag __source="custom" />;',
  Object.assign({}, opts, { filename: '/fake/path/mock.js' })
).code;

var expected = 'var x = <sometag __source="custom" />;';

expect(actual).toBe(expected);
"#
);