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

def dist_folder
  rails_root.join('public', 'svelte-dist')
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
  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 ssr

def ssr
  rss = @configs['ssr']
  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