Class: Dependabot::NpmAndYarn::PackageManagerDetector

Inherits:
Object
  • Object
show all
Extended by:
T::Helpers, T::Sig
Defined in:
lib/dependabot/npm_and_yarn/package_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(lockfiles, package_json) ⇒ PackageManagerDetector

Returns a new instance of PackageManagerDetector.



88
89
90
91
92
93
# File 'lib/dependabot/npm_and_yarn/package_manager.rb', line 88

def initialize(lockfiles, package_json)
  @lockfiles = lockfiles
  @package_json = package_json
  @manifest_package_manager = T.let(package_json&.fetch(MANIFEST_PACKAGE_MANAGER_KEY, nil), T.nilable(String))
  @engines = T.let(package_json&.fetch(MANIFEST_ENGINES_KEY, {}), T::Hash[String, T.untyped])
end

Instance Method Details

#detect_package_managerObject



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/dependabot/npm_and_yarn/package_manager.rb', line 98

def detect_package_manager
  package_manager = name_from_lockfiles ||
                    name_from_package_manager_attr ||
                    name_from_engines

  if package_manager
    Dependabot.logger.info("Detected package manager: #{package_manager}")
  else
    package_manager = DEFAULT_PACKAGE_MANAGER
    Dependabot.logger.info("Default package manager used: #{package_manager}")
  end
  package_manager
rescue StandardError => e
  Dependabot.logger.error("Error detecting package manager: #{e.message}")
  DEFAULT_PACKAGE_MANAGER
end