Sha256: 7c8b79ad3de36d62cfd6dd26d296fe29c80ec336b6490fa25f0b80e98d784a2b

Contents?: true

Size: 1.09 KB

Versions: 6

Compression:

Stored size: 1.09 KB

Contents

# Frozen-string-literal: true
# Copyright: 2012 - 2017 - MIT License
# Encoding: utf-8

require "sprockets"

module Jekyll
  module Assets
    module Map
      class JavaScript < Sprockets::UglifierCompressor
        def call(input)
          out = super(input)
          env = input[:environment]
          asset = env.find_asset!(input[:filename], pipeline: :source)
          path = asset.filename.sub(env.jekyll.in_source_dir + "/", "")
          url = Map.map_path(asset: asset, env: env)
          url = env.prefix_url(url)

          out.update({
            data: <<~TXT
              #{input[:data].strip}
              //# sourceMappingURL=#{url}
              //# sourceURL=#{path}
            TXT
          })
        end

        def self.register_on(instance)
          content_type = "application/javascript"
          instance.register_compressor(content_type,
            :source_map, self)
        end
      end

      # --
      # We load late in some cases.
      # You can also register it in a Hook.
      # Globally Register it.
      # --
      JavaScript.register_on(Sprockets)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
jekyll-assets-3.0.5 lib/jekyll/assets/map/javascript.rb
jekyll-assets-3.0.4 lib/jekyll/assets/map/javascript.rb
jekyll-assets-3.0.3 lib/jekyll/assets/map/javascript.rb
jekyll-assets-3.0.2 lib/jekyll/assets/map/javascript.rb
jekyll-assets-3.0.1 lib/jekyll/assets/map/javascript.rb
jekyll-assets-3.0.0 lib/jekyll/assets/map/javascript.rb