class SvelteOnRails::Configuration

def self.instance

def self.instance
  @instance ||= new
end

def components_folder

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

def dist_folder

def dist_folder
  rails_root.join('public', 'svelte-dist')
end

def frontend_folder

def frontend_folder
  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
  config_path = Rails.root.join("config", "svelte_on_rails.yml")
  return unless File.exist?(config_path)
  config_data = YAML.load_file(config_path)
  if config_data
    @configs = @configs.merge(config_data)
  end
end

def rails_root

def rails_root
  Rails.root
end

def render_server_side

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

def watch_changes

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