Class: Webpacker::DevServerProxy

Inherits:
Rack::Proxy
  • Object
show all
Defined in:
lib/webpacker/dev_server_proxy.rb

Instance Method Summary collapse

Constructor Details

#initialize(app = nil, opts = {}) ⇒ DevServerProxy

Returns a new instance of DevServerProxy.



6
7
8
9
# File 'lib/webpacker/dev_server_proxy.rb', line 6

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

Instance Method Details

#perform_request(env) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/webpacker/dev_server_proxy.rb', line 18

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

#rewrite_response(response) ⇒ Object



11
12
13
14
15
16
# File 'lib/webpacker/dev_server_proxy.rb', line 11

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