class Dependabot::NpmAndYarn::UpdateChecker::DependencyFilesBuilder
Attributes
credentials[R]
dependency[R]
dependency_files[R]
Public Class Methods
new(dependency:, dependency_files:, credentials:)
click to toggle source
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 10 def initialize(dependency:, dependency_files:, credentials:) @dependency = dependency @dependency_files = dependency_files @credentials = credentials end
Public Instance Methods
lockfiles()
click to toggle source
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 46 def lockfiles [*package_locks, *shrinkwraps, *yarn_locks] end
package_files()
click to toggle source
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 50 def package_files @package_files ||= dependency_files. select { |f| f.name.end_with?("package.json") } end
package_locks()
click to toggle source
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 28 def package_locks @package_locks ||= dependency_files. select { |f| f.name.end_with?("package-lock.json") } end
shrinkwraps()
click to toggle source
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 40 def shrinkwraps @shrinkwraps ||= dependency_files. select { |f| f.name.end_with?("npm-shrinkwrap.json") } end
write_temporary_dependency_files()
click to toggle source
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 16 def write_temporary_dependency_files write_lock_files File.write(".npmrc", npmrc_content) package_files.each do |file| path = file.name FileUtils.mkdir_p(Pathname.new(path).dirname) File.write(file.name, prepared_package_json_content(file)) end end
yarn_locks()
click to toggle source
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 34 def yarn_locks @yarn_locks ||= dependency_files. select { |f| f.name.end_with?("yarn.lock") } end
Private Instance Methods
npmrc_content()
click to toggle source
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 85 def npmrc_content NpmAndYarn::FileUpdater::NpmrcBuilder.new( credentials: credentials, dependency_files: dependency_files ).npmrc_content end
prepared_package_json_content(file)
click to toggle source
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 79 def prepared_package_json_content(file) NpmAndYarn::FileUpdater::PackageJsonPreparer.new( package_json_content: file.content ).prepared_content end
prepared_yarn_lockfile_content(content)
click to toggle source
Duplicated in NpmLockfileUpdater Remove the dependency we want to update from the lockfile and let yarn find the latest resolvable version and fix the lockfile
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 75 def prepared_yarn_lockfile_content(content) content.gsub(/^#{Regexp.quote(dependency.name)}\@.*?\n\n/m, "") end
write_lock_files()
click to toggle source
# File lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb, line 60 def write_lock_files yarn_locks.each do |f| FileUtils.mkdir_p(Pathname.new(f.name).dirname) File.write(f.name, prepared_yarn_lockfile_content(f.content)) end [*package_locks, *shrinkwraps].each do |f| FileUtils.mkdir_p(Pathname.new(f.name).dirname) File.write(f.name, f.content) end end