shopify-cli 2.9.0 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.yaml +117 -0
- data/.github/ISSUE_TEMPLATE/enhancement.yaml +38 -0
- data/.github/ISSUE_TEMPLATE/feature.yaml +47 -0
- data/.github/ISSUE_TEMPLATE.md +18 -0
- data/CHANGELOG.md +38 -5
- data/Gemfile.lock +1 -1
- data/dev.yml +3 -0
- data/lib/project_types/extension/commands/build.rb +3 -0
- data/lib/project_types/extension/commands/check.rb +3 -0
- data/lib/project_types/extension/commands/create.rb +3 -0
- data/lib/project_types/extension/commands/push.rb +3 -0
- data/lib/project_types/extension/commands/serve.rb +3 -0
- data/lib/project_types/extension/models/specification_handlers/default.rb +1 -1
- data/lib/project_types/extension/tasks/convert_server_config.rb +3 -1
- data/lib/project_types/script/cli.rb +5 -0
- data/lib/project_types/script/commands/connect.rb +3 -1
- data/lib/project_types/script/commands/create.rb +2 -0
- data/lib/project_types/script/commands/push.rb +6 -0
- data/lib/project_types/script/config/extension_points.yml +12 -0
- data/lib/project_types/script/graphql/app_script_set.graphql +2 -0
- data/lib/project_types/script/graphql/module_upload_url_generate.graphql +5 -1
- data/lib/project_types/script/layers/application/build_script.rb +6 -3
- data/lib/project_types/script/layers/application/project_dependencies.rb +1 -1
- data/lib/project_types/script/layers/application/push_script.rb +38 -30
- data/lib/project_types/script/layers/domain/errors.rb +10 -3
- data/lib/project_types/script/layers/domain/extension_point.rb +2 -2
- data/lib/project_types/script/layers/domain/push_package.rb +0 -3
- data/lib/project_types/script/layers/domain/script_config.rb +6 -4
- data/lib/project_types/script/layers/domain/script_project.rb +1 -0
- data/lib/project_types/script/layers/infrastructure/errors.rb +47 -24
- data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_task_runner.rb +2 -12
- data/lib/project_types/script/layers/infrastructure/languages/project_creator.rb +1 -0
- data/lib/project_types/script/layers/infrastructure/languages/task_runner.rb +1 -0
- data/lib/project_types/script/layers/infrastructure/languages/typescript_task_runner.rb +2 -12
- data/lib/project_types/script/layers/infrastructure/languages/wasm_project_creator.rb +15 -0
- data/lib/project_types/script/layers/infrastructure/languages/wasm_task_runner.rb +36 -0
- data/lib/project_types/script/layers/infrastructure/metadata_repository.rb +18 -0
- data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +7 -8
- data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +45 -54
- data/lib/project_types/script/layers/infrastructure/script_service.rb +35 -12
- data/lib/project_types/script/layers/infrastructure/script_uploader.rb +22 -9
- data/lib/project_types/script/loaders/project.rb +2 -1
- data/lib/project_types/script/messages/messages.rb +94 -88
- data/lib/project_types/script/ui/error_handler.rb +75 -38
- data/lib/project_types/theme/commands/check.rb +3 -0
- data/lib/project_types/theme/commands/delete.rb +3 -0
- data/lib/project_types/theme/commands/init.rb +3 -0
- data/lib/project_types/theme/commands/language_server.rb +3 -0
- data/lib/project_types/theme/commands/package.rb +3 -0
- data/lib/project_types/theme/commands/publish.rb +3 -0
- data/lib/project_types/theme/commands/pull.rb +12 -1
- data/lib/project_types/theme/commands/push.rb +12 -1
- data/lib/project_types/theme/commands/serve.rb +3 -0
- data/lib/project_types/theme/messages/messages.rb +4 -0
- data/lib/shopify_cli/command/sub_command.rb +2 -0
- data/lib/shopify_cli/command.rb +66 -0
- data/lib/shopify_cli/commands/app/create/node.rb +3 -0
- data/lib/shopify_cli/commands/app/create/rails.rb +3 -0
- data/lib/shopify_cli/commands/app/create.rb +3 -0
- data/lib/shopify_cli/commands/app/deploy.rb +3 -0
- data/lib/shopify_cli/commands/app/serve.rb +3 -0
- data/lib/shopify_cli/commands/login.rb +4 -10
- data/lib/shopify_cli/constants.rb +18 -2
- data/lib/shopify_cli/core/executor.rb +4 -4
- data/lib/shopify_cli/environment.rb +61 -16
- data/lib/shopify_cli/exception_reporter.rb +9 -0
- data/lib/shopify_cli/github/issue_url_generator.rb +19 -8
- data/lib/shopify_cli/identity_auth/env_auth_token.rb +34 -0
- data/lib/shopify_cli/identity_auth.rb +36 -18
- data/lib/shopify_cli/messages/messages.rb +2 -2
- data/lib/shopify_cli/method_object.rb +21 -9
- data/lib/shopify_cli/partners_api.rb +7 -2
- data/lib/shopify_cli/result.rb +61 -59
- data/lib/shopify_cli/services/app/create/rails_service.rb +37 -13
- data/lib/shopify_cli/task.rb +5 -3
- data/lib/shopify_cli/theme/file.rb +2 -2
- data/lib/shopify_cli/theme/filter/path_matcher.rb +38 -0
- data/lib/shopify_cli/theme/ignore_filter.rb +14 -18
- data/lib/shopify_cli/theme/include_filter.rb +65 -0
- data/lib/shopify_cli/theme/syncer.rb +17 -2
- data/lib/shopify_cli/utilities.rb +7 -0
- data/lib/shopify_cli/version.rb +1 -1
- data/lib/shopify_cli.rb +3 -1
- data/vendor/deps/cli-kit/lib/cli/kit/system.rb +11 -6
- data/vendor/deps/cli-kit/lib/cli/kit/util.rb +5 -1
- data/vendor/deps/cli-ui/lib/cli/ui/os.rb +6 -4
- data/vendor/deps/ruby2_keywords/LICENSE +22 -0
- data/vendor/deps/ruby2_keywords/README.md +67 -0
- data/vendor/deps/ruby2_keywords/Rakefile +54 -0
- data/vendor/deps/ruby2_keywords/lib/ruby2_keywords.rb +57 -0
- data/vendor/deps/ruby2_keywords/ruby2_keywords.gemspec +18 -0
- data/vendor/deps/ruby2_keywords/test/test_keyword.rb +41 -0
- data/vendor/lib/semantic/version.rb +0 -1
- metadata +18 -3
- data/lib/project_types/rails/commands/create.rb +0 -210
|
@@ -13,45 +13,53 @@ module Script
|
|
|
13
13
|
.for(ctx, script_project.language, script_project.script_name)
|
|
14
14
|
|
|
15
15
|
extension_point = ExtensionPoints.get(type: script_project.extension_point_type)
|
|
16
|
-
|
|
16
|
+
|
|
17
|
+
library = extension_point.libraries.for(script_project.language)
|
|
18
|
+
|
|
17
19
|
raise Infrastructure::Errors::LanguageLibraryForAPINotFoundError.new(
|
|
18
20
|
language: script_project.language,
|
|
19
21
|
api: script_project.extension_point_type
|
|
20
|
-
)
|
|
22
|
+
) if library.nil? && (script_project.language != "wasm")
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
library_name = library&.package
|
|
25
|
+
library_data = {
|
|
23
26
|
language: script_project.language,
|
|
24
27
|
version: task_runner.library_version(library_name),
|
|
25
|
-
}
|
|
28
|
+
} if library_name
|
|
26
29
|
|
|
27
30
|
ProjectDependencies.install(ctx: ctx, task_runner: task_runner)
|
|
28
|
-
BuildScript.call(ctx: ctx, task_runner: task_runner, script_project: script_project, library:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
31
|
+
BuildScript.call(ctx: ctx, task_runner: task_runner, script_project: script_project, library: library_data)
|
|
32
|
+
|
|
33
|
+
metadata_file_location = task_runner.metadata_file_location
|
|
34
|
+
metadata = Infrastructure::MetadataRepository.new(ctx: ctx).get_metadata(metadata_file_location)
|
|
35
|
+
|
|
36
|
+
CLI::UI::Frame.open(ctx.message("script.application.pushing")) do
|
|
37
|
+
UI::PrintingSpinner.spin(ctx, ctx.message("script.application.pushing_script")) do |p_ctx, spinner|
|
|
38
|
+
package = Infrastructure::PushPackageRepository.new(ctx: p_ctx).get_push_package(
|
|
39
|
+
script_project: script_project,
|
|
40
|
+
metadata: metadata,
|
|
41
|
+
library: library_data,
|
|
42
|
+
)
|
|
43
|
+
script_service = Infrastructure::ServiceLocator.script_service(
|
|
44
|
+
ctx: p_ctx,
|
|
45
|
+
api_key: script_project.api_key
|
|
46
|
+
)
|
|
47
|
+
module_upload_url = Infrastructure::ScriptUploader.new(script_service).upload(package.script_content)
|
|
48
|
+
uuid = script_service.set_app_script(
|
|
49
|
+
uuid: package.uuid,
|
|
50
|
+
extension_point_type: package.extension_point_type,
|
|
51
|
+
force: force,
|
|
52
|
+
metadata: package.metadata,
|
|
53
|
+
script_config: package.script_config,
|
|
54
|
+
module_upload_url: module_upload_url,
|
|
55
|
+
library: package.library,
|
|
56
|
+
input_query: script_project.input_query,
|
|
57
|
+
)
|
|
58
|
+
if ShopifyCLI::Environment.interactive?
|
|
59
|
+
script_project_repo.update_env(uuid: uuid)
|
|
60
|
+
end
|
|
61
|
+
spinner.update_title(p_ctx.message("script.application.pushed"))
|
|
53
62
|
end
|
|
54
|
-
spinner.update_title(p_ctx.message("script.application.pushed"))
|
|
55
63
|
end
|
|
56
64
|
end
|
|
57
65
|
end
|
|
@@ -15,10 +15,11 @@ module Script
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
class MissingScriptConfigFieldError < ScriptProjectError
|
|
18
|
-
attr_reader :field
|
|
19
|
-
def initialize(field)
|
|
18
|
+
attr_reader :field, :filename
|
|
19
|
+
def initialize(field:, filename:)
|
|
20
20
|
super()
|
|
21
21
|
@field = field
|
|
22
|
+
@filename = filename
|
|
22
23
|
end
|
|
23
24
|
end
|
|
24
25
|
|
|
@@ -31,7 +32,13 @@ module Script
|
|
|
31
32
|
end
|
|
32
33
|
end
|
|
33
34
|
|
|
34
|
-
class MetadataNotFoundError < ScriptProjectError
|
|
35
|
+
class MetadataNotFoundError < ScriptProjectError
|
|
36
|
+
attr_reader :filename
|
|
37
|
+
def initialize(filename)
|
|
38
|
+
super()
|
|
39
|
+
@filename = filename
|
|
40
|
+
end
|
|
41
|
+
end
|
|
35
42
|
|
|
36
43
|
class MetadataValidationError < ScriptProjectError; end
|
|
37
44
|
end
|
|
@@ -42,8 +42,8 @@ module Script
|
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def all
|
|
45
|
-
@all ||= @config.map do |language,
|
|
46
|
-
ExtensionPointLibrary.new(language,
|
|
45
|
+
@all ||= @config.map do |language, library_config|
|
|
46
|
+
ExtensionPointLibrary.new(language, library_config)
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
49
|
|
|
@@ -9,7 +9,6 @@ module Script
|
|
|
9
9
|
:extension_point_type,
|
|
10
10
|
:script_config,
|
|
11
11
|
:script_content,
|
|
12
|
-
:compiled_type,
|
|
13
12
|
:metadata,
|
|
14
13
|
:library
|
|
15
14
|
|
|
@@ -18,7 +17,6 @@ module Script
|
|
|
18
17
|
uuid:,
|
|
19
18
|
extension_point_type:,
|
|
20
19
|
script_content:,
|
|
21
|
-
compiled_type: nil,
|
|
22
20
|
metadata:,
|
|
23
21
|
script_config:,
|
|
24
22
|
library:
|
|
@@ -27,7 +25,6 @@ module Script
|
|
|
27
25
|
@uuid = uuid
|
|
28
26
|
@extension_point_type = extension_point_type
|
|
29
27
|
@script_content = script_content
|
|
30
|
-
@compiled_type = compiled_type
|
|
31
28
|
@metadata = metadata
|
|
32
29
|
@script_config = script_config
|
|
33
30
|
@library = library
|
|
@@ -4,13 +4,13 @@ module Script
|
|
|
4
4
|
module Layers
|
|
5
5
|
module Domain
|
|
6
6
|
class ScriptConfig
|
|
7
|
-
attr_reader :content, :version, :title, :description, :configuration_ui, :configuration
|
|
7
|
+
attr_reader :content, :version, :title, :description, :configuration_ui, :configuration, :filename
|
|
8
8
|
|
|
9
9
|
REQUIRED_FIELDS = %w(version title)
|
|
10
10
|
|
|
11
|
-
def initialize(content:)
|
|
11
|
+
def initialize(content:, filename:)
|
|
12
|
+
@filename = filename
|
|
12
13
|
validate_content!(content)
|
|
13
|
-
|
|
14
14
|
@content = content
|
|
15
15
|
@version = @content["version"].to_s
|
|
16
16
|
@title = @content["title"]
|
|
@@ -23,7 +23,9 @@ module Script
|
|
|
23
23
|
|
|
24
24
|
def validate_content!(content)
|
|
25
25
|
REQUIRED_FIELDS.each do |field|
|
|
26
|
-
|
|
26
|
+
if content[field].nil?
|
|
27
|
+
raise Errors::MissingScriptConfigFieldError.new(field: field, filename: filename)
|
|
28
|
+
end
|
|
27
29
|
end
|
|
28
30
|
end
|
|
29
31
|
end
|
|
@@ -5,65 +5,79 @@ module Script
|
|
|
5
5
|
module Infrastructure
|
|
6
6
|
module Errors
|
|
7
7
|
class BuildError < ScriptProjectError; end
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
class ScriptConfigurationDefinitionError < ScriptProjectError
|
|
10
|
+
attr_reader :filename, :messages
|
|
11
|
+
def initialize(messages:, filename:)
|
|
12
|
+
super()
|
|
13
|
+
@messages = messages
|
|
14
|
+
@filename = filename
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class ScriptConfigSyntaxError < ScriptProjectError
|
|
19
|
+
attr_reader :filename
|
|
20
|
+
def initialize(filename)
|
|
21
|
+
@filename = filename
|
|
22
|
+
super()
|
|
23
|
+
end
|
|
24
|
+
end
|
|
9
25
|
|
|
10
26
|
class ScriptConfigMissingKeysError < ScriptProjectError
|
|
11
|
-
attr_reader :missing_keys
|
|
12
|
-
def initialize(missing_keys)
|
|
27
|
+
attr_reader :missing_keys, :filename
|
|
28
|
+
def initialize(missing_keys:, filename:)
|
|
13
29
|
super()
|
|
14
30
|
@missing_keys = missing_keys
|
|
31
|
+
@filename = filename
|
|
15
32
|
end
|
|
16
33
|
end
|
|
17
34
|
|
|
18
35
|
class ScriptConfigInvalidValueError < ScriptProjectError
|
|
19
|
-
attr_reader :valid_input_modes
|
|
20
|
-
def initialize(valid_input_modes)
|
|
36
|
+
attr_reader :valid_input_modes, :filename
|
|
37
|
+
def initialize(valid_input_modes:, filename:)
|
|
21
38
|
super()
|
|
22
39
|
@valid_input_modes = valid_input_modes
|
|
40
|
+
@filename = filename
|
|
23
41
|
end
|
|
24
42
|
end
|
|
25
43
|
|
|
26
44
|
class ScriptConfigFieldsMissingKeysError < ScriptProjectError
|
|
27
|
-
attr_reader :missing_keys
|
|
28
|
-
def initialize(missing_keys)
|
|
45
|
+
attr_reader :missing_keys, :filename
|
|
46
|
+
def initialize(missing_keys:, filename:)
|
|
29
47
|
super()
|
|
30
48
|
@missing_keys = missing_keys
|
|
49
|
+
@filename = filename
|
|
31
50
|
end
|
|
32
51
|
end
|
|
33
52
|
|
|
34
53
|
class ScriptConfigFieldsInvalidValueError < ScriptProjectError
|
|
35
|
-
attr_reader :valid_types
|
|
36
|
-
def initialize(valid_types)
|
|
54
|
+
attr_reader :valid_types, :filename
|
|
55
|
+
def initialize(valid_types:, filename:)
|
|
37
56
|
super()
|
|
38
57
|
@valid_types = valid_types
|
|
58
|
+
@filename = filename
|
|
39
59
|
end
|
|
40
60
|
end
|
|
41
61
|
|
|
42
62
|
class ScriptEnvAppNotConnectedError < ScriptProjectError; end
|
|
43
63
|
|
|
44
|
-
class
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
class MissingScriptConfigYmlFieldError < ScriptProjectError
|
|
49
|
-
attr_reader :field
|
|
50
|
-
def initialize(field)
|
|
64
|
+
class ScriptConfigParseError < ScriptProjectError
|
|
65
|
+
attr_reader :filename, :serialization_format
|
|
66
|
+
def initialize(filename:, serialization_format:)
|
|
51
67
|
super()
|
|
52
|
-
@
|
|
68
|
+
@filename = filename
|
|
69
|
+
@serialization_format = serialization_format
|
|
53
70
|
end
|
|
54
71
|
end
|
|
55
72
|
|
|
56
|
-
class
|
|
57
|
-
attr_reader :
|
|
58
|
-
def initialize(
|
|
73
|
+
class NoScriptConfigFileError < ScriptProjectError
|
|
74
|
+
attr_reader :filename
|
|
75
|
+
def initialize(filename)
|
|
59
76
|
super()
|
|
60
|
-
@
|
|
77
|
+
@filename = filename
|
|
61
78
|
end
|
|
62
79
|
end
|
|
63
80
|
|
|
64
|
-
class NoScriptConfigYmlFileError < ScriptProjectError; end
|
|
65
|
-
class NoScriptConfigFileError < ScriptProjectError; end
|
|
66
|
-
|
|
67
81
|
class APILibraryNotFoundError < ScriptProjectError
|
|
68
82
|
attr_reader :library_name
|
|
69
83
|
def initialize(library_name)
|
|
@@ -146,6 +160,15 @@ module Script
|
|
|
146
160
|
class ScriptUploadError < ScriptProjectError; end
|
|
147
161
|
class ProjectConfigNotFoundError < ScriptProjectError; end
|
|
148
162
|
class InvalidProjectConfigError < ScriptProjectError; end
|
|
163
|
+
|
|
164
|
+
class ScriptTooLargeError < ScriptProjectError
|
|
165
|
+
attr_reader :max_size
|
|
166
|
+
|
|
167
|
+
def initialize(max_size)
|
|
168
|
+
super()
|
|
169
|
+
@max_size = max_size
|
|
170
|
+
end
|
|
171
|
+
end
|
|
149
172
|
end
|
|
150
173
|
end
|
|
151
174
|
end
|
|
@@ -21,10 +21,6 @@ module Script
|
|
|
21
21
|
bytecode
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
-
def compiled_type
|
|
25
|
-
"wasm"
|
|
26
|
-
end
|
|
27
|
-
|
|
28
24
|
def install_dependencies
|
|
29
25
|
check_node_version!
|
|
30
26
|
|
|
@@ -37,14 +33,8 @@ module Script
|
|
|
37
33
|
ctx.dir_exist?("node_modules")
|
|
38
34
|
end
|
|
39
35
|
|
|
40
|
-
def
|
|
41
|
-
|
|
42
|
-
msg = @ctx.message("script.error.metadata_not_found_cause", METADATA_FILE)
|
|
43
|
-
raise Domain::Errors::MetadataNotFoundError, msg
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
raw_contents = File.read(METADATA_FILE)
|
|
47
|
-
Domain::Metadata.create_from_json(@ctx, raw_contents)
|
|
36
|
+
def metadata_file_location
|
|
37
|
+
METADATA_FILE
|
|
48
38
|
end
|
|
49
39
|
|
|
50
40
|
def library_version(library_name)
|
|
@@ -22,10 +22,6 @@ module Script
|
|
|
22
22
|
bytecode
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
def compiled_type
|
|
26
|
-
"wasm"
|
|
27
|
-
end
|
|
28
|
-
|
|
29
25
|
def install_dependencies
|
|
30
26
|
check_node_version!
|
|
31
27
|
|
|
@@ -38,14 +34,8 @@ module Script
|
|
|
38
34
|
ctx.dir_exist?("node_modules")
|
|
39
35
|
end
|
|
40
36
|
|
|
41
|
-
def
|
|
42
|
-
|
|
43
|
-
msg = @ctx.message("script.error.metadata_not_found_cause", METADATA_FILE)
|
|
44
|
-
raise Domain::Errors::MetadataNotFoundError, msg
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
raw_contents = File.read(METADATA_FILE)
|
|
48
|
-
Domain::Metadata.create_from_json(@ctx, raw_contents)
|
|
37
|
+
def metadata_file_location
|
|
38
|
+
METADATA_FILE
|
|
49
39
|
end
|
|
50
40
|
|
|
51
41
|
def library_version(library_name)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Script
|
|
4
|
+
module Layers
|
|
5
|
+
module Infrastructure
|
|
6
|
+
module Languages
|
|
7
|
+
class WasmTaskRunner
|
|
8
|
+
BYTECODE_FILE = "script.wasm"
|
|
9
|
+
attr_reader :ctx, :script_name
|
|
10
|
+
|
|
11
|
+
def initialize(ctx, script_name)
|
|
12
|
+
@ctx = ctx
|
|
13
|
+
@script_name = script_name
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def dependencies_installed?
|
|
17
|
+
true
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def library_version(_library_name)
|
|
21
|
+
nil
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def metadata_file_location
|
|
25
|
+
"metadata.json"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def build
|
|
29
|
+
raise Errors::WebAssemblyBinaryNotFoundError unless ctx.file_exist?(BYTECODE_FILE)
|
|
30
|
+
ctx.binread(BYTECODE_FILE)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
|
|
2
|
+
module Script
|
|
3
|
+
module Layers
|
|
4
|
+
module Infrastructure
|
|
5
|
+
class MetadataRepository
|
|
6
|
+
include SmartProperties
|
|
7
|
+
property! :ctx, accepts: ShopifyCLI::Context
|
|
8
|
+
|
|
9
|
+
def get_metadata(file_location)
|
|
10
|
+
raise Domain::Errors::MetadataNotFoundError, file_location unless ctx.file_exist?(file_location)
|
|
11
|
+
|
|
12
|
+
raw_contents = File.read(file_location)
|
|
13
|
+
Domain::Metadata.create_from_json(ctx, raw_contents)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -7,8 +7,8 @@ module Script
|
|
|
7
7
|
include SmartProperties
|
|
8
8
|
property! :ctx, accepts: ShopifyCLI::Context
|
|
9
9
|
|
|
10
|
-
def create_push_package(script_project:, script_content:,
|
|
11
|
-
build_file_path = file_path(script_project.id
|
|
10
|
+
def create_push_package(script_project:, script_content:, metadata:, library:)
|
|
11
|
+
build_file_path = file_path(script_project.id)
|
|
12
12
|
write_to_path(build_file_path, script_content)
|
|
13
13
|
|
|
14
14
|
Domain::PushPackage.new(
|
|
@@ -16,16 +16,15 @@ module Script
|
|
|
16
16
|
uuid: script_project.uuid,
|
|
17
17
|
extension_point_type: script_project.extension_point_type,
|
|
18
18
|
script_content: script_content,
|
|
19
|
-
compiled_type: compiled_type,
|
|
20
19
|
metadata: metadata,
|
|
21
20
|
script_config: script_project.script_config,
|
|
22
21
|
library: library
|
|
23
22
|
)
|
|
24
23
|
end
|
|
25
24
|
|
|
26
|
-
def get_push_package(script_project:,
|
|
27
|
-
build_file_path = file_path(script_project.id
|
|
28
|
-
raise Domain::PushPackageNotFoundError unless ctx.file_exist?(build_file_path)
|
|
25
|
+
def get_push_package(script_project:, metadata:, library:)
|
|
26
|
+
build_file_path = file_path(script_project.id)
|
|
27
|
+
raise Domain::Errors::PushPackageNotFoundError unless ctx.file_exist?(build_file_path)
|
|
29
28
|
|
|
30
29
|
script_content = ctx.binread(build_file_path)
|
|
31
30
|
Domain::PushPackage.new(
|
|
@@ -46,8 +45,8 @@ module Script
|
|
|
46
45
|
ctx.binwrite(path, content)
|
|
47
46
|
end
|
|
48
47
|
|
|
49
|
-
def file_path(path_to_script
|
|
50
|
-
"#{path_to_script}/build/script
|
|
48
|
+
def file_path(path_to_script)
|
|
49
|
+
"#{path_to_script}/build/script.wasm"
|
|
51
50
|
end
|
|
52
51
|
end
|
|
53
52
|
end
|