Sha256: 1cb20abfac3c803630d9c5dceb711957cb5d6c910d93f0b486637aca54cbe5ca

Contents?: true

Size: 1.45 KB

Versions: 6

Compression:

Stored size: 1.45 KB

Contents

# frozen_string_literal: true

class ViteRuby::CLI::Vite < Dry::CLI::Command
  CURRENT_ENV = ENV['RACK_ENV'] || ENV['RAILS_ENV']

  def self.executable_options
    option(:mode, default: self::DEFAULT_ENV, values: %w[development production test], aliases: ['m'], desc: 'The build mode for Vite')
    option(:node_options, desc: 'Node options for the Vite executable', aliases: ['node-options'])
    option(:inspect, desc: 'Run Vite in a debugging session with node --inspect-brk', aliases: ['inspect-brk'], type: :boolean)
    option(:trace_deprecation, desc: 'Run Vite in debugging mode with node --trace-deprecation', aliases: ['trace-deprecation'], type: :boolean)
  end

  def self.shared_options
    executable_options
    option(:debug, desc: 'Run Vite in verbose mode, printing all debugging output', aliases: ['verbose'], type: :boolean)
    option(:clobber, desc: 'Clear cache and previous builds', type: :boolean, aliases: %w[clean clear])
  end

  def call(mode:, args: [], clobber: false, node_options: nil, inspect: nil, trace_deprecation: nil, **boolean_opts)
    ViteRuby.env['VITE_RUBY_MODE'] = mode
    ViteRuby.commands.clobber if clobber

    node_options = [
      node_options,
      ('--inspect-brk' if inspect),
      ('--trace-deprecation' if trace_deprecation),
    ].compact.join(' ')

    args << %(--node-options="#{ node_options }") unless node_options.empty?

    boolean_opts.map { |name, value| args << "--#{ name }" if value }

    yield(args)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
vite_ruby-3.9.0 lib/vite_ruby/cli/vite.rb
vite_ruby-3.8.3 lib/vite_ruby/cli/vite.rb
vite_ruby-3.8.2 lib/vite_ruby/cli/vite.rb
vite_ruby-3.8.1 lib/vite_ruby/cli/vite.rb
vite_ruby-3.8.0 lib/vite_ruby/cli/vite.rb
vite_ruby-3.7.0 lib/vite_ruby/cli/vite.rb