Sha256: 677b44a22e71918bad478a0dd0591a45aae0eb22c55078ecdcb639ba3d463403
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
# frozen_string_literal: true require "rack/proxy" require "socket" module Snowpacker # Proxy server for snowpacker class SnowpackerProxy < Rack::Proxy def perform_request(env) if env["PATH_INFO"].start_with?(%r{/#{Snowpacker.config.output_path}}) && dev_server_running? env["HTTP_HOST"] = env["HTTP_X_FORWARDED_HOST"] = Snowpacker.config.hostname env["HTTP_X_FORWARDED_SERVER"] = host_with_port env["HTTP_PORT"] = env["HTTP_X_FORWARDED_PORT"] = Snowpacker.config.port env["HTTP_X_FORWARDED_PROTO"] = env["HTTP_X_FORWARDED_SCHEME"] = "http" # 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 dev_server_running? host = Snowpacker.config.hostname port = Snowpacker.config.port connect_timeout = 0.01 Socket.tcp(host, port, connect_timeout: connect_timeout).close true rescue Errno::ECONNREFUSED puts "Snowpacker is not currently running on #{host_with_port}" false end def host_with_port hostname = Snowpacker.config.hostname port = Snowpacker.config.port "#{hostname}:#{port}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
snowpacker-0.0.4.alpha1 | lib/snowpacker/snowpacker_proxy.rb |