Sha256: b1da18e8c862061a114e87cae40f70bbcddd791ddcdf0f2a168c221493201d5f

Contents?: true

Size: 1.1 KB

Versions: 24

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

# This fixes a thread safety issue with the Webpacker compiler explained here:
# https://github.com/rails/webpacker/issues/2801
#
# The fix is partly from the issue and partly from this commit at Shakapacker:
# https://github.com/shakacode/shakapacker/commit/f2dc437ecd9914f394780d4c3150fc4a70d40f9d

require "webpacker/compiler"

module Decidim
  module Webpacker
    module ThreadSafeCompiler
      private

      def watched_files_digest
        warn "Webpacker::Compiler.watched_paths has been deprecated. Set additional_paths in webpacker.yml instead." unless watched_paths.empty?
        root_path = Pathname.new(File.expand_path(config.root_path))
        expanded_paths = [*default_watched_paths, *watched_paths].map do |path|
          root_path.join(path)
        end
        files = Dir[*expanded_paths].reject { |f| File.directory?(f) }
        file_ids = files.sort.map { |f| "#{File.basename(f)}/#{Digest::SHA1.file(f).hexdigest}" }
        Digest::SHA1.hexdigest(file_ids.join("/"))
      end
    end
  end
end

Webpacker::Compiler.prepend(Decidim::Webpacker::ThreadSafeCompiler)

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
decidim-0.27.9 decidim-core/lib/decidim/webpacker/thread_safe_compiler.rb
decidim-core-0.27.9 lib/decidim/webpacker/thread_safe_compiler.rb
decidim-0.27.8 decidim-core/lib/decidim/webpacker/thread_safe_compiler.rb
decidim-core-0.27.8 lib/decidim/webpacker/thread_safe_compiler.rb
decidim-0.27.7 decidim-core/lib/decidim/webpacker/thread_safe_compiler.rb
decidim-core-0.27.7 lib/decidim/webpacker/thread_safe_compiler.rb
decidim-0.27.6 decidim-core/lib/decidim/webpacker/thread_safe_compiler.rb
decidim-core-0.27.6 lib/decidim/webpacker/thread_safe_compiler.rb
decidim-0.27.5 decidim-core/lib/decidim/webpacker/thread_safe_compiler.rb
decidim-core-0.27.5 lib/decidim/webpacker/thread_safe_compiler.rb
decidim-0.27.4 decidim-core/lib/decidim/webpacker/thread_safe_compiler.rb
decidim-core-0.27.4 lib/decidim/webpacker/thread_safe_compiler.rb
decidim-0.27.3 decidim-core/lib/decidim/webpacker/thread_safe_compiler.rb
decidim-core-0.27.3 lib/decidim/webpacker/thread_safe_compiler.rb
decidim-0.27.2 decidim-core/lib/decidim/webpacker/thread_safe_compiler.rb
decidim-core-0.27.2 lib/decidim/webpacker/thread_safe_compiler.rb
decidim-0.27.1 decidim-core/lib/decidim/webpacker/thread_safe_compiler.rb
decidim-core-0.27.1 lib/decidim/webpacker/thread_safe_compiler.rb
decidim-0.27.0 decidim-core/lib/decidim/webpacker/thread_safe_compiler.rb
decidim-core-0.27.0 lib/decidim/webpacker/thread_safe_compiler.rb