Sha256: fa7e052a97d7b586fe2d3bc7ae13ca9b480d0ddf4348727d603f649ef74f1ef4

Contents?: true

Size: 1.96 KB

Versions: 3

Compression:

Stored size: 1.96 KB

Contents

# frozen_string_literal: true
require "shopify_cli"

module Extension
  module Tasks
    class ConvertServerConfig
      include SmartProperties

      property! :api_key, accepts: String
      property! :context, accepts: ShopifyCLI::Context
      property! :hash, accepts: Hash
      property! :registration_uuid, accepts: String
      property  :resource_url, accepts: String
      property! :store, accepts: String
      property! :title, accepts: String
      property :tunnel_url, accepts: String
      property! :type, accepts: String

      def self.call(*args)
        new(*args).call
      end

      def call
        context.abort(context.message("tasks.errors.parse_error")) if hash.nil?

        renderer = Models::ServerConfig::DevelopmentRenderer.find(type)

        extension = Models::ServerConfig::Extension.new(
          uuid: registration_uuid,
          type: type.upcase,
          user: Models::ServerConfig::User.new,
          development: Models::ServerConfig::Development.new(
            build_dir: hash.dig("development", "build_dir"),
            renderer: renderer,
            entries: Models::ServerConfig::DevelopmentEntries.new(
              main: hash.dig("development", "entries", "main")
            )
          ),
          extension_points: hash.dig("extension_points"),
          version: version(renderer.name, context),
          title: title
        )

        unless resource_url.nil?
          extension.development.resource = Models::ServerConfig::DevelopmentResource.new(url: resource_url)
        end
        server_config = Models::ServerConfig::Root.new(
          extensions: [extension],
          public_url: tunnel_url,
          store: store
        )

        unless api_key.nil?
          server_config.app = Models::ServerConfig::App.new(api_key: api_key)
        end

        server_config
      end

      def version(renderer, context)
        Tasks::FindPackageFromJson.call(renderer, context: context).version
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
shopify-cli-2.7.3 lib/project_types/extension/tasks/convert_server_config.rb
shopify-cli-2.7.2 lib/project_types/extension/tasks/convert_server_config.rb
shopify-cli-2.7.1 lib/project_types/extension/tasks/convert_server_config.rb