Sha256: ba9d1d6e360a325a487218766fd1ec8b72ff883995654307837a52c2d29d2930

Contents?: true

Size: 1.57 KB

Versions: 26

Compression:

Stored size: 1.57 KB

Contents

# frozen_string_literal: true
require "base64"
require "shopify_cli"
require "semantic/semantic"

module Extension
  module Features
    class Argo
      include SmartProperties

      property! :git_template, converts: :to_str
      property! :renderer_package_name, converts: :to_str

      SCRIPT_PATH = %w(build main.js).freeze

      YARN_INSTALL_COMMAND = %w(install).freeze
      YARN_INSTALL_PARAMETERS = %w(--silent).freeze
      YARN_RUN_COMMAND = %w(run).freeze
      YARN_RUN_SCRIPT_NAME = %w(build).freeze
      private_constant :YARN_INSTALL_COMMAND, :YARN_INSTALL_PARAMETERS, :YARN_RUN_COMMAND, :YARN_RUN_SCRIPT_NAME

      def create(directory_name, identifier, context)
        Features::ArgoSetup.new(git_template: git_template).call(directory_name, identifier, context)
      end

      def config(context, include_renderer_version: true)
        filepath = File.join(context.root, SCRIPT_PATH)
        context.abort(context.message("features.argo.missing_file_error")) unless File.exist?(filepath)

        renderer_version = nil
        if include_renderer_version
          renderer_version = renderer_package(context).version
        end

        begin
          {
            renderer_version: renderer_version,
            serialized_script: Base64.strict_encode64(File.read(filepath).chomp),
          }
        rescue StandardError
          context.abort(context.message("features.argo.script_prepare_error"))
        end
      end

      def renderer_package(context)
        Tasks::FindPackageFromJson.call(renderer_package_name, context: context)
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
shopify-cli-2.36.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.35.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.34.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.33.1 lib/project_types/extension/features/argo.rb
shopify-cli-2.33.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.32.1 lib/project_types/extension/features/argo.rb
shopify-cli-2.32.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.31.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.30.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.29.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.28.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.27.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.26.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.25.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.24.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.23.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.22.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.21.0 lib/project_types/extension/features/argo.rb
shopify-cli-2.20.1 lib/project_types/extension/features/argo.rb
shopify-cli-2.20.0 lib/project_types/extension/features/argo.rb