Class: PetiteVite::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/petite_vite_rails.rb

Constant Summary collapse

DEFAULT_VITE_DEV_SERVER_PORT =
5173

Instance Method Summary collapse

Constructor Details

#initialize(shared_json_path:, vite_manifest_relpath:) ⇒ Config

Returns a new instance of Config.



13
14
15
16
17
# File 'lib/petite_vite_rails.rb', line 13

def initialize(shared_json_path:, vite_manifest_relpath:)
  @shared_json_path = shared_json_path
  @contents = JSON.parse(File.read(shared_json_path))
  @vite_manifest_relpath = vite_manifest_relpath
end

Instance Method Details

#build_commandObject



19
# File 'lib/petite_vite_rails.rb', line 19

def build_command = @contents.fetch("buildCommand")

#frontend_outputObject



21
# File 'lib/petite_vite_rails.rb', line 21

def frontend_output = @contents.fetch("frontendOutput")

#frontend_rootObject



23
# File 'lib/petite_vite_rails.rb', line 23

def frontend_root = @contents.fetch("frontendRoot")

#manifestObject



37
38
39
# File 'lib/petite_vite_rails.rb', line 37

def manifest
  @manifest ||= Manifest.new(config: self, manifest_path: manifest_path)
end

#manifest_pathObject



35
# File 'lib/petite_vite_rails.rb', line 35

def manifest_path = File.join(frontend_root, @vite_manifest_relpath)

#vite_dev_server_portObject



25
26
27
28
29
30
31
32
33
# File 'lib/petite_vite_rails.rb', line 25

def vite_dev_server_port
  return DEFAULT_VITE_DEV_SERVER_PORT if !@contents.key?("viteDevServerPort")

  value = @contents.fetch("viteDevServerPort")
  if !value.is_a?(Integer)
    raise "Invalid viteDevServerPort in #{@shared_json_path}: expected an Integer, got #{value.inspect}"
  end
  value
end