Class: Dependabot::Package::NpmPackageJson
- Inherits:
-
Object
- Object
- Dependabot::Package::NpmPackageJson
- Extended by:
- T::Sig
- Defined in:
- lib/dependabot/package/npm_package_json.rb
Constant Summary collapse
- ObjectHash =
T.type_alias { T::Hash[String, Object] }
- DEPENDENCY_TYPES =
%w(dependencies devDependencies optionalDependencies).freeze
Class Method Summary collapse
Instance Method Summary collapse
- #each_dependency(&_block) ⇒ Object
- #flat? ⇒ Boolean
-
#initialize(data, path) ⇒ NpmPackageJson
constructor
A new instance of NpmPackageJson.
- #name ⇒ Object
- #package_manager_config ⇒ Object
- #workspaces? ⇒ Boolean
Constructor Details
#initialize(data, path) ⇒ NpmPackageJson
Returns a new instance of NpmPackageJson.
24 25 26 27 |
# File 'lib/dependabot/package/npm_package_json.rb', line 24 def initialize(data, path) @path = path @data = T.let(object_hash(data, "root"), ObjectHash) end |
Class Method Details
.from_file(file) ⇒ Object
19 20 21 |
# File 'lib/dependabot/package/npm_package_json.rb', line 19 def self.from_file(file) new(T.cast(JSON.parse(T.must(file.content)), Object), file.path) end |
Instance Method Details
#each_dependency(&_block) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/dependabot/package/npm_package_json.rb', line 32 def each_dependency(&_block) DEPENDENCY_TYPES.each do |type| dependencies = @data[type] next unless dependencies object_hash(dependencies, type).each do |name, requirement| next unless requirement.is_a?(String) yield name, requirement, type end end end |
#flat? ⇒ Boolean
52 53 54 |
# File 'lib/dependabot/package/npm_package_json.rb', line 52 def flat? !!@data["flat"] end |
#name ⇒ Object
46 47 48 49 |
# File 'lib/dependabot/package/npm_package_json.rb', line 46 def name value = @data["name"] value if value.is_a?(String) end |
#package_manager_config ⇒ Object
62 63 64 |
# File 'lib/dependabot/package/npm_package_json.rb', line 62 def package_manager_config NpmPackageManagerConfig.from_package_json(@data) end |
#workspaces? ⇒ Boolean
57 58 59 |
# File 'lib/dependabot/package/npm_package_json.rb', line 57 def workspaces? !!@data["workspaces"] end |