Class: Script::Layers::Application::ProjectDependencies

Inherits:
Object
  • Object
show all
Defined in:
lib/project_types/script/layers/application/project_dependencies.rb

Class Method Summary collapse

Class Method Details

.install(ctx:, task_runner:) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/project_types/script/layers/application/project_dependencies.rb', line 5

def self.install(ctx:, task_runner:)
  CLI::UI::Frame.open(ctx.message('script.project_deps.checking_with_npm')) do
    begin
      if task_runner.dependencies_installed?
        ctx.puts(ctx.message('script.project_deps.none_required'))
      else
        UI::StrictSpinner.spin(ctx.message('script.project_deps.installing')) do |spinner|
          task_runner.install_dependencies
          spinner.update_title(ctx.message('script.project_deps.installed'))
        end
      end
      true
    rescue Infrastructure::Errors::DependencyInstallError => e
      CLI::UI::Frame.with_frame_color_override(:red) do
        ctx.puts("\n#{e.message}")
      end
      raise e
    end
  end
end