Sha256: 1f8b4b1e249755d63ad1357e456fa94d50c939fea3a1dfecc1dad38c3c1642d2

Contents?: true

Size: 669 Bytes

Versions: 8

Compression:

Stored size: 669 Bytes

Contents

# frozen_string_literal: true

module Spandx
  module Js
    module Parsers
      class Yarn < ::Spandx::Core::Parser
        def matches?(filename)
          File.basename(filename) == 'yarn.lock'
        end

        def parse(file_path)
          YarnLock.new(file_path).each_with_object(Set.new) do |metadata, memo|
            memo << map_from(metadata)
          end
        end

        private

        def map_from(metadata)
          ::Spandx::Core::Dependency.new(
            package_manager: :yarn,
            name: metadata['name'],
            version: metadata['version'],
            meta: metadata
          )
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
spandx-0.13.3 lib/spandx/js/parsers/yarn.rb
spandx-0.13.2 lib/spandx/js/parsers/yarn.rb
spandx-0.13.1 lib/spandx/js/parsers/yarn.rb
spandx-0.13.0 lib/spandx/js/parsers/yarn.rb
spandx-0.12.3 lib/spandx/js/parsers/yarn.rb
spandx-0.12.2 lib/spandx/js/parsers/yarn.rb
spandx-0.12.1 lib/spandx/js/parsers/yarn.rb
spandx-0.12.0 lib/spandx/js/parsers/yarn.rb