Sha256: a82ada4650925fa147a81bb043ed8f980898c40eeec5a0009b609b9f8fa8feda

Contents?: true

Size: 1.06 KB

Versions: 16

Compression:

Stored size: 1.06 KB

Contents

require "rack/proxy"

class Webpacker::DevServerProxy < Rack::Proxy
  delegate :config, :dev_server, to: :@webpacker

  def initialize(app = nil, opts = {})
    @webpacker = opts.delete(:webpacker) || Webpacker.instance
    super
  end

  def rewrite_response(response)
    _status, headers, _body = response
    headers.delete "transfer-encoding"
    headers.delete "content-length" if dev_server.running? && dev_server.https?
    response
  end

  def perform_request(env)
    if env["PATH_INFO"].start_with?("/#{public_output_uri_path}") && dev_server.running?
      env["HTTP_HOST"] = env["HTTP_X_FORWARDED_HOST"] = env["HTTP_X_FORWARDED_SERVER"] = dev_server.host_with_port
      env["HTTP_X_FORWARDED_PROTO"] = env["HTTP_X_FORWARDED_SCHEME"] = dev_server.protocol
      unless dev_server.https?
        env["HTTPS"] = env["HTTP_X_FORWARDED_SSL"] = "off"
      end
      env["SCRIPT_NAME"] = ""

      super(env)
    else
      @app.call(env)
    end
  end

  private
    def public_output_uri_path
      config.public_output_path.relative_path_from(config.public_path)
    end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
chatops-rpc-0.0.2 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/webpacker-4.0.7/lib/webpacker/dev_server_proxy.rb
chatops-rpc-0.0.1 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/webpacker-4.0.7/lib/webpacker/dev_server_proxy.rb
webpacker-4.0.7 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.6 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.5 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.4 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.3 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.2 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.1 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.0 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.0.rc.8 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.0.rc.7 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.0.rc.6 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.0.rc.5 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.0.rc.4 lib/webpacker/dev_server_proxy.rb
webpacker-4.0.0.rc.3 lib/webpacker/dev_server_proxy.rb