Class: Dependabot::NpmAndYarn::DependencyGrapher::NpmRelationshipResolver

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/npm_and_yarn/dependency_grapher/npm_relationship_resolver.rb

Instance Method Summary collapse

Constructor Details

#initialize(lockfile) ⇒ NpmRelationshipResolver

Returns a new instance of NpmRelationshipResolver.



14
15
16
# File 'lib/dependabot/npm_and_yarn/dependency_grapher/npm_relationship_resolver.rb', line 14

def initialize(lockfile)
  @lockfile = lockfile
end

Instance Method Details

#relationshipsObject



19
20
21
22
23
24
25
26
27
28
# File 'lib/dependabot/npm_and_yarn/dependency_grapher/npm_relationship_resolver.rb', line 19

def relationships
  parsed = JSON.parse(T.must(@lockfile.content))
  packages = parsed.fetch("packages", {})

  # v3/v2 lockfiles use a flat "packages" section
  return build_v3_relationships(packages) if packages.is_a?(Hash) && !packages.empty?

  # if packages isn't present, attempt a v1 fallback
  build_v1_relationships(parsed)
end