Class: React::JSX::BabelTransformer

Inherits:
Object
  • Object
show all
Defined in:
lib/react/jsx/babel_transformer.rb

Overview

A React::JSX-compliant transformer which uses ‘Babel::Transpiler` to transform JSX.

Constant Summary collapse

DEPRECATED_OPTIONS =
%i[harmony strip_types asset_path].freeze
DEFAULT_TRANSFORM_OPTIONS =
{ blacklist: ["spec.functionName", "validation.react", "strict"] }.freeze

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ BabelTransformer

Returns a new instance of BabelTransformer.



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/react/jsx/babel_transformer.rb', line 10

def initialize(options)
  if (options.keys & DEPRECATED_OPTIONS).any?
    ActiveSupport::Deprecation.warn(
      <<-MSG
        Setting config.react.jsx_transform_options for :harmony, :strip_types, and :asset_path keys is now deprecated and has no effect with the default Babel Transformer.
        Please use new Babel Transformer options :whitelist, :plugin instead.
      MSG
    )
  end

  @transform_options = DEFAULT_TRANSFORM_OPTIONS.merge(options)
end

Instance Method Details

#transform(code) ⇒ Object



23
24
25
# File 'lib/react/jsx/babel_transformer.rb', line 23

def transform(code)
  Babel::Transpiler.transform(code, @transform_options)["code"]
end