module SvelteOnRails::Installer::Vite

def self.install_vite

def self.install_vite
  iu = SvelteOnRails::Installer::Utils
  puts '-' * 80
  gu = SvelteOnRails::GemUtils
  if gu.check_gem_version('vite_rails')
    puts "vite_rails already installed, skipping this part."
  else
    # check non-existence
    iu.check_file_not_exists('config/vite.json')
    iu.check_file_not_exists('vite.config.ts')
    iu.check_folder_not_exists('app/frontend')
    # install
    gu.install_gem('vite_rails')
    Dir.chdir(Rails.root) do
      `bundle exec vite install`
    end
  end
  # check existence
  iu.check_file_exists('config/vite.json')
  iu.check_file_exists('vite.config.ts')
  iu.check_file_exists('package.json')
  iu.check_file_exists('package-lock.json')
  iu.check_file_exists('app/frontend/entrypoints/application.js')
  iu.check_folder_exists('app/frontend')
  # check npm package version
  ni = SvelteOnRails::Installer::Npm
  ni.install_or_update_package('vite', minimal_version: [6, 1])
end