class Codestatus::PackageResolvers::NpmResolver
Constants
- NPM_REGISTRY_ENDPOINT
Private Instance Methods
bugs_url()
click to toggle source
# File lib/codestatus/package_resolvers/npm_resolver.rb, line 22 def bugs_url package_info&.dig('bugs', 'url') end
client()
click to toggle source
# File lib/codestatus/package_resolvers/npm_resolver.rb, line 45 def client RestClient end
found?()
click to toggle source
# File lib/codestatus/package_resolvers/npm_resolver.rb, line 10 def found? package_info end
homepage_url()
click to toggle source
# File lib/codestatus/package_resolvers/npm_resolver.rb, line 26 def homepage_url package_info&.dig('homepage') end
package_info()
click to toggle source
# File lib/codestatus/package_resolvers/npm_resolver.rb, line 34 def package_info @package_info ||= request(package_uri) end
package_uri()
click to toggle source
# File lib/codestatus/package_resolvers/npm_resolver.rb, line 49 def package_uri File.join(NPM_REGISTRY_ENDPOINT, slash_escaped_package) end
repository_url()
click to toggle source
# File lib/codestatus/package_resolvers/npm_resolver.rb, line 30 def repository_url package_info&.dig('repository', 'url') end
request(uri)
click to toggle source
# File lib/codestatus/package_resolvers/npm_resolver.rb, line 38 def request(uri) response = client.get(uri) JSON.parse(response) rescue RestClient::NotFound nil end
slash_escaped_package()
click to toggle source
for scoped package
For example, to access @atlassian/aui information, we must use https://registry.npmjs.org/@atlassian%2Faui, not https://registry.npmjs.org/%40atlassian%2Faui.
# File lib/codestatus/package_resolvers/npm_resolver.rb, line 57 def slash_escaped_package package.gsub('/', CGI.escape('/')) end
urls()
click to toggle source
# File lib/codestatus/package_resolvers/npm_resolver.rb, line 14 def urls [ bugs_url, repository_url, homepage_url, ].compact end