Class: DiverDown::Web::DevServerMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/diver_down/web/dev_server_middleware.rb

Overview

For vite

Defined Under Namespace

Classes: HttpProxy, WebSocketProxy

Instance Method Summary collapse

Constructor Details

#initialize(app, host:, port:) ⇒ DevServerMiddleware

Returns a new instance of DevServerMiddleware.



51
52
53
54
55
56
# File 'lib/diver_down/web/dev_server_middleware.rb', line 51

def initialize(app, host:, port:)
  @app = app
  @host = host
  @port = port
  @http_proxy = HttpProxy.new(@app, host: @host, port: @port)
end

Instance Method Details

#call(env) ⇒ Object

Parameters:

  • env (Hash)


59
60
61
62
63
64
65
66
67
68
69
# File 'lib/diver_down/web/dev_server_middleware.rb', line 59

def call(env)
  request = Rack::Request.new(env)

  if WebSocket::Driver.websocket?(env)
    WebSocketProxy.new(env, host: @host, port: @port)
  elsif request.path.start_with?('/api')
    @app.call(env)
  else
    @http_proxy.call(env)
  end
end