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 =
[:harmony, :strip_types, :asset_path]
DEFAULT_TRANSFORM_OPTIONS =
{ blacklist: ['spec.functionName', 'validation.react', 'strict'] }

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ BabelTransformer

Returns a new instance of BabelTransformer.



8
9
10
11
12
13
14
15
# File 'lib/react/jsx/babel_transformer.rb', line 8

def initialize(options)
  if (options.keys & DEPRECATED_OPTIONS).any?
    ActiveSupport::Deprecation.warn('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.')
  end

  @transform_options = DEFAULT_TRANSFORM_OPTIONS.merge(options)
end

Instance Method Details

#transform(code) ⇒ Object



17
18
19
# File 'lib/react/jsx/babel_transformer.rb', line 17

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