Class: LicenseFinder::NPM

Inherits:
PackageManager show all
Defined in:
lib/license_finder/package_managers/npm.rb

Constant Summary collapse

DEPENDENCY_GROUPS =
["dependencies", "devDependencies"]

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from PackageManager

#active?, #capture, command_exists?, current_packages, #current_packages_with_relations, #initialize, installed?, package_managers

Constructor Details

This class inherits a constructor from LicenseFinder::PackageManager

Class Method Details

.package_management_commandObject



25
26
27
# File 'lib/license_finder/package_managers/npm.rb', line 25

def self.package_management_command
  "npm"
end

Instance Method Details

#current_packagesObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/license_finder/package_managers/npm.rb', line 7

def current_packages
  packages = {}
  direct_dependencies.each do |dep|
    group_name = dep[:group]
    walk_dependency_tree(dep[:name]) do |dependency|
      package_id = dependency["name"]
      if packages[package_id] && packages[package_id].version.nil? && dependency["version"]
        old_package = packages[package_id]
        packages[package_id] = NpmPackage.new(dependency, logger: logger, groups: old_package.groups)
      else
        packages[package_id] ||= NpmPackage.new(dependency, logger: logger)
      end
      packages[package_id].groups << group_name unless packages[package_id].groups.include?(group_name)
    end
  end
  packages.values
end