class Playwright::InputFiles

def as_method_and_params

def as_method_and_params
  if has_large_file?
    ['setInputFiles', params_for_set_input_file_paths]
  else
    ['setInputFiles', params_for_set_input_files]
  end
end

def has_large_file?

def has_large_file?
fsize = 1024 * 1024 # 1MB
.any? do |file|
 file
 String
le::Stat.new(file).size > max_bufsize
 File
le.stat.size > max_bufsize

ise_argument_error

def initialize(context, files)

def initialize(context, files)
  @context = context
  if files.is_a?(File)
    @files = [files]
  elsif files.is_a?(Enumerable)
    @files = files
  else
    @files = [files]
  end
end

def params_for_set_input_file_paths

def params_for_set_input_file_paths
le_streams = @files.map do |file|
 file
 String
itable_stream = @context.send(:create_temp_file, file)
le.open(file, 'rb') do |file|
writable_stream.write(file)
d
itable_stream.channel
 File
itable_stream = @context.send(:create_temp_file, file.path)
itable_stream.write(file)
itable_stream.channel

ise_argument_error
ams: writable_streams }

def params_for_set_input_files

def params_for_set_input_files
ayloads = @files.map do |file|
 file
 String
name: File.basename(file),
buffer: Base64.strict_encode64(File.read(file)),
 File
name: File.basename(file.path),
buffer: Base64.strict_encode64(file.read),

ise_argument_error
oads: file_payloads }

def raise_argument_error

def raise_argument_error
ArgumentError.new('file must be a String or File.')