Sha256: b45c83dd15a640f0b207cf957c35f3b7db99099366da619da097f93d3db17058

Contents?: true

Size: 635 Bytes

Versions: 1

Compression:

Stored size: 635 Bytes

Contents

# frozen_string_literal: true

require "rack/file"
require "webpacker"

module ServiceWorker
  module Handlers
    class WebpackerHandler
      def call(env)
        path_info = env.fetch("serviceworker.asset_name")

        path = Webpacker.manifest.lookup(path_info)

        if Webpacker.dev_server.running?
          proxy = Webpacker::DevServerProxy.new
          proxy.call(env.merge("PATH_INFO" => path))
        else
          file_server.call(env.merge("PATH_INFO" => path))
        end
      end

      private

      def file_server
        @file_server ||= ::Rack::File.new(::Rails.public_path)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
serviceworker-rails-0.6.0 lib/serviceworker/handlers/webpacker_handler.rb