module SvelteOnRails::Installer::Javascript

def self.append_import_statement(file_path, package_name_for_test_existence, import_statement)

def self.append_import_statement(file_path, package_name_for_test_existence, import_statement)
  # Read the file content
  content = File.read(file_path)
  # Split content into lines
  lines = content.lines
  already_exist = []
  lines.each do |line|
    if line.match(/^\s*import\s+.*['"]#{package_name_for_test_existence}['";].*$/)
      already_exist.push(line)
    end
  end
  if already_exist.present?
    puts "skipping: #{import_statement} already exists in #{File.basename(file_path)}, found: «#{already_exist.join(' // ').strip}»."
  else
    # Find the index of the last import statement
    last_import_index = -1
    lines.each_with_index do |line, index|
      if line.match?(/^\s*import\s+.*$/)
        last_import_index = index
      end
    end
    # Insert the import statement after the last import
    if last_import_index >= 0
      lines.insert(last_import_index + 1, import_statement)
    else
      # If no import statements, add at the beginning
      lines.unshift(import_statement)
    end
    # Write the modified content back to the file
    begin
      File.write(file_path, lines.map{|l|l.gsub(/\n/, '')}.join("\n"))
      puts "Successfully inserted «#{import_statement}» into '#{file_path}' on line #{last_import_index + 2}."
    rescue => e
      raise "Error writing to #{file_path} => «#{e.message}»"
    end
  end
end