Class: Gurney::Source::Pnpm

Inherits:
Base
  • Object
show all
Defined in:
lib/gurney/source/pnpm.rb

Instance Method Summary collapse

Constructor Details

#initialize(pnpm_lock:) ⇒ Pnpm

Returns a new instance of Pnpm.



7
8
9
# File 'lib/gurney/source/pnpm.rb', line 7

def initialize(pnpm_lock:)
  @pnpm_lock = pnpm_lock
end

Instance Method Details

#dependenciesObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/gurney/source/pnpm.rb', line 15

def dependencies
  if present?
    parsed_lock = YAML.safe_load(@pnpm_lock)

    major_version = parsed_lock['lockfileVersion'].split('.').first
    if major_version == '9'
      extract_dependencies(parsed_lock)
    else
      puts "pnpm-lock.yaml: Lockfile version #{major_version} is unsupported. No npm dependencies reported.".yellow
      []
    end
  end
rescue Psych::SyntaxError => e
  raise Gurney::Error.new("Invalid pnpm-lock.yaml format: #{e.message}")
end

#present?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/gurney/source/pnpm.rb', line 11

def present?
  !@pnpm_lock&.empty?
end