class SvelteOnRails::Configuration

def self.instance

def self.instance
  @instance ||= new
end

def components_folder

def components_folder
  @configs['components_folder']
end

def components_folder_full

def components_folder_full
  Pathname.new(frontend_folder_full).join(components_folder.to_s)
end

def dist_folder(app_root = nil)

def dist_folder(app_root = nil)
  rails_root(app_root).join('public', 'svelteDist')
end

def frontend_folder

def frontend_folder
  @configs['frontend_folder']
end

def frontend_folder_full

def frontend_folder_full
  rails_root.join(@configs['frontend_folder'].to_s)
end

def initialize

def initialize
  @configs = {
    development: {
      watch_changes: true,
    },
    test: {
      watch_changes: true,
    }
  }
  load_yaml_config if defined?(Rails)
end

def load_yaml_config

def load_yaml_config
  begin
    config_path = Rails.root.join("config", "svelte_on_rails.yml")
    return unless File.exist?(config_path)
  rescue
    return
  end
  config_data = YAML.load_file(config_path)
  if config_data
    @configs = @configs.merge(config_data)
  end
end

def rails_root(root_url = nil)

def rails_root(root_url = nil)
  root_url || Rails.root
end

def ssr

def ssr
  rss = @configs['ssr']
  if rss == false || rss == :auto
    rss
  else
    true
  end
end

def system_type

def system_type
  :vite_rails
end

def watch_changes?

def watch_changes?
  if @configs[Rails.env]
    @configs[Rails.env]['watch_changes'] == true
  else
    false
  end
end