Module: LiveScript::Rails::SprocketsProcessor

Defined in:
lib/livescript/rails/processor.rb

Constant Summary collapse

ENABLE_SOURCE_MAP =

only enable source map when sprockets >= 4.0

Sprockets::VERSION >= '4.0'

Class Method Summary collapse

Class Method Details

.cache_keyObject



9
10
11
# File 'lib/livescript/rails/processor.rb', line 9

def self.cache_key
  @cache_key ||= "#{name}:#{LiveScript::Source::VERSION}:#{LiveScript::VERSION}:#{LiveScript::Rails::VERSION}".freeze
end

.call(input) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/livescript/rails/processor.rb', line 13

def self.call(input)
  data = input[:data]
  options = {
    bare: true,
    header: true,
  }.merge(::Rails.application.config.assets.livescript || {})

  options.merge!({
    filename: input[:source_path] || input[:filename],
    map: ENABLE_SOURCE_MAP ? 'linked-src' : 'none',
  })

  result = input[:cache].fetch([self.cache_key, data]) do
    LiveScript.compile(data, options)
  end

  if ENABLE_SOURCE_MAP
    map = Sprockets::SourceMapUtils.decode_vlq_mappings(result['map']['mappings'], sources: result['map']['sources'], names: result['map']['names'])
    {
      data: result['code'],
      map: Sprockets::SourceMapUtils.combine_source_maps(input[:metadata][:map], map),
    }
  else
    result
  end
end