Sha256: b7bfa91d86ac7d2473920247e78786d4edbeea30afff9087c0048f754869455d
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
require "json" module Licensed module Source class NPM def initialize(config) @config = config end def type "npm" end def enabled? @config.enabled?(type) && File.exist?(@config.pwd.join("package.json")) end def dependencies return @dependencies if defined?(@dependencies) packages = recursive_dependencies(JSON.parse(command)["dependencies"]) @dependencies = packages.map do |name, package| Dependency.new(package["realPath"], { "type" => type, "name" => package["name"], "version" => package["version"], "summary" => package["description"], "homepage" => package["homepage"] }) end end def command `npm list --json --production --long` end def recursive_dependencies(dependencies, result = {}) dependencies.each do |name, dependency| (result[name] ||= {}).update(dependency) recursive_dependencies(dependency["dependencies"] || {}, result) end result end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
licensed-0.6.0 | lib/licensed/source/npm.rb |