Sha256: 8f6094f39cb3a6c47b1a02113ebf23fa57e699cbee34e77faa932c4f61f9267a

Contents?: true

Size: 986 Bytes

Versions: 4

Compression:

Stored size: 986 Bytes

Contents

# frozen_string_literal: true

require "shopify_cli"

module Extension
  module Models
    class DevelopmentServerRequirements
      SUPPORTED_EXTENSION_TYPES = [
        "checkout_ui_extension",
        "checkout_post_purchase",
        "product_subscription",
        "beacon_extension",
      ]

      class << self
        def supported?(type)
          binary_installed? && type_supported?(type) && type_enabled?(type)
        end

        def beta_enabled?
          ShopifyCLI::Feature.enabled?(:extension_server_beta)
        end

        def type_supported?(type)
          SUPPORTED_EXTENSION_TYPES.include?(type.downcase)
        end

        private

        def binary_installed?
          Models::DevelopmentServer.new.executable_installed?
        end

        # Some types are enabled unconditionally; others require beta_enabled
        def type_enabled?(type)
          beta_enabled? || "checkout_ui_extension" == type.downcase
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
shopify-cli-2.15.6 lib/project_types/extension/models/development_server_requirements.rb
shopify-cli-2.15.5 lib/project_types/extension/models/development_server_requirements.rb
shopify-cli-2.15.4 lib/project_types/extension/models/development_server_requirements.rb
shopify-cli-2.15.3 lib/project_types/extension/models/development_server_requirements.rb