Sha256: 8224031003ce70fb933e476b7f079d152fb0451ce464fb3b263bcd114f722d24
Contents?: true
Size: 1.1 KB
Versions: 50
Compression:
Stored size: 1.1 KB
Contents
# frozen_string_literal: true require "json" module Extension module Tasks class FindPackageFromJson < ShopifyCLI::Task include SmartProperties property! :context, accepts: ShopifyCLI::Context def self.call(package_name, **config) new(**config).call(package_name) end def call(package_name) ShopifyCLI::Result.success(resolve_package_json(package_name)) .then { |file| File.read(file) } .then { |file| JSON.parse(file) } .then { |file| file.dig("version") } .then { |version| return Models::NpmPackage.new(name: package_name, version: version) } .unwrap do |error| context.debug(error) context.abort(context.message("errors.module_not_found", package_name)) end end private def resolve_package_json(package_name) path = "path.join(require.resolve('#{package_name}'), '../package.json')" package_json, error, _ = CLI::Kit::System.capture3("node", "-p", path) return error unless !error.nil? package_json.chomp end end end end
Version data entries
50 entries across 50 versions & 1 rubygems