Sha256: 4cbb57da31a4757d5e3b3246a2ff0f053e45e5d287a2c3c43bc2fd17e538f781

Contents?: true

Size: 894 Bytes

Versions: 2

Compression:

Stored size: 894 Bytes

Contents

# frozen_string_literal: true

module Script
  class ScriptProject < ShopifyCli::Project
    SUPPORTED_LANGUAGES = %w(ts)

    attr_reader :extension_point_type, :script_name, :language

    def initialize(dir)
      super(dir)
      @extension_point_type = lookup_config('extension_point_type')
      @script_name = lookup_config('script_name')
      @language = 'ts'
    end

    private

    def lookup_config(key)
      raise Errors::InvalidContextError, key unless config.key?(key)
      config[key]
    end

    class << self
      def create(dir)
        raise Errors::ScriptProjectAlreadyExistsError, dir if Dir.exist?(dir)

        FileUtils.mkdir_p(dir)
        Dir.chdir(dir)
      end

      def cleanup(ctx:, script_name:, root_dir:)
        Dir.chdir(root_dir)
        ctx.rm_r("#{root_dir}/#{script_name}") if Dir.exist?("#{root_dir}/#{script_name}")
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shopify-cli-0.9.1 lib/project_types/script/script_project.rb
shopify-cli-0.9.0 lib/project_types/script/script_project.rb