diff --git a/lib/resources/npm.rb b/lib/resources/npm.rb index 0da4f7663..69a2e8033 100644 --- a/lib/resources/npm.rb +++ b/lib/resources/npm.rb @@ -13,23 +13,26 @@ class NpmPackage < Vulcano.resource(1) end def info - return @cache if !@cache.nil? + return @info unless @info.nil? + cmd = vulcano.run_command("npm ls -g --json #{@package_name}") - return nil if cmd.exit_status != 0 - pkgs = JSON.parse(cmd.stdout) - @cache = { + @info = { name: @package_name, - version: pkgs['dependencies'][@package_name]['version'], type: 'npm', + installed: cmd.exit_status != 0, } + return @info unless @info[:installed] + + pkgs = JSON.parse(cmd.stdout) + @info[version] = pkgs['dependencies'][@package_name]['version'] end def installed? - !info.nil? + info[:installed] end def version - info.nil? ? nil : info[:version] + info[:version] end def to_s