Class: Inertia::SSR::Server

Inherits:
Rage::Daemon
  • Object
show all
Defined in:
lib/inertia/ssr/server.rb

Overview

Background daemon that runs the Node.js SSR server.

Instance Method Summary collapse

Instance Method Details

#cleanupObject



23
24
25
26
# File 'lib/inertia/ssr/server.rb', line 23

def cleanup
  Process.kill("TERM", @pid) if @pid
rescue Errno::ESRCH
end

#performObject



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/inertia/ssr/server.rb', line 9

def perform
  puts "INFO: Starting SSR server"

  ssr_bundle = Frontend.ssr_dist.glob("*.{js,mjs}").first

  unless ssr_bundle&.exist?
    Rage.logger.fatal("Could not start SSR server - bundle not found")
    return Rage::Daemon::Stop
  end

  @pid = Process.spawn("#{Frontend.runtime} #{ssr_bundle.relative_path_from(Frontend.root)}", chdir: Frontend.root)
  Process.wait(@pid)
end