class Opal::CLI

def create_builder

def create_builder
  builder = Opal::Builder.new(
    stubs: stubs,
    compiler_options: compiler_options,
    missing_require_severity: missing_require_severity,
  )
  # --no-cache
  builder.cache = Opal::Cache::NullCache.new if no_cache
  # --include
  builder.append_paths(*load_paths)
  # --gem
  gems.each { |gem_name| builder.use_gem gem_name }
  # --require
  requires.each { |required| builder.build(required, requirable: true, load: true) }
  # --preload
  preload.each { |path| builder.build_require(path) }
  # --verbose
  builder.build_str '$VERBOSE = true', '(flags)', no_export: true if verbose
  # --debug
  builder.build_str '$DEBUG = true', '(flags)', no_export: true if debug
  # --eval / stdin / file
  source = evals_or_file_source
  builder.build_str(source, filename) if source
  # --no-exit
  builder.build_str '::Kernel.exit', '(exit)', no_export: true unless no_exit
  builder
end