Sha256: 312ab6baa6d5418b9f7093dc2f765ca6aeae24015c1f2fe74c313e881f0dfa83
Contents?: true
Size: 1.84 KB
Versions: 1
Compression:
Stored size: 1.84 KB
Contents
# frozen_string_literal: true module Script module Layers module Domain class ExtensionPoint attr_reader :type, :deprecated, :sdks, :domain def initialize(type, config) @type = type @deprecated = config["deprecated"] || false @domain = config["domain"] || nil @sdks = ExtensionPointSDKs.new(config) end def deprecated? @deprecated end def dasherize_type @type.gsub("_", "-") end end class ExtensionPointSDKs def initialize(config) @config = config end def all [assemblyscript, rust].compact end def assemblyscript @assemblyscript ||= new_sdk(ExtensionPointAssemblyScriptSDK) end def rust @rust ||= new_sdk(ExtensionPointRustSDK) end private def new_sdk(klass) config = @config[klass.language] return nil if config.nil? klass.new(config) end end class ExtensionPointSDK attr_reader :beta, :package def initialize(config) @beta = config["beta"] || false @package = config["package"] end def beta? @beta end def self.language raise NotImplementedError end end class ExtensionPointAssemblyScriptSDK < ExtensionPointSDK attr_reader :sdk_version, :toolchain_version def initialize(config) super @sdk_version = config["sdk-version"] @toolchain_version = config["toolchain-version"] end def self.language "assemblyscript" end end class ExtensionPointRustSDK < ExtensionPointSDK def self.language "rust" end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shopify-cli-1.8.0 | lib/project_types/script/layers/domain/extension_point.rb |