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.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.yaml +117 -0
  3. data/.github/ISSUE_TEMPLATE/enhancement.yaml +38 -0
  4. data/.github/ISSUE_TEMPLATE/feature.yaml +47 -0
  5. data/.github/ISSUE_TEMPLATE.md +18 -0
  6. data/CHANGELOG.md +38 -5
  7. data/Gemfile.lock +1 -1
  8. data/dev.yml +3 -0
  9. data/lib/project_types/extension/commands/build.rb +3 -0
  10. data/lib/project_types/extension/commands/check.rb +3 -0
  11. data/lib/project_types/extension/commands/create.rb +3 -0
  12. data/lib/project_types/extension/commands/push.rb +3 -0
  13. data/lib/project_types/extension/commands/serve.rb +3 -0
  14. data/lib/project_types/extension/models/specification_handlers/default.rb +1 -1
  15. data/lib/project_types/extension/tasks/convert_server_config.rb +3 -1
  16. data/lib/project_types/script/cli.rb +5 -0
  17. data/lib/project_types/script/commands/connect.rb +3 -1
  18. data/lib/project_types/script/commands/create.rb +2 -0
  19. data/lib/project_types/script/commands/push.rb +6 -0
  20. data/lib/project_types/script/config/extension_points.yml +12 -0
  21. data/lib/project_types/script/graphql/app_script_set.graphql +2 -0
  22. data/lib/project_types/script/graphql/module_upload_url_generate.graphql +5 -1
  23. data/lib/project_types/script/layers/application/build_script.rb +6 -3
  24. data/lib/project_types/script/layers/application/project_dependencies.rb +1 -1
  25. data/lib/project_types/script/layers/application/push_script.rb +38 -30
  26. data/lib/project_types/script/layers/domain/errors.rb +10 -3
  27. data/lib/project_types/script/layers/domain/extension_point.rb +2 -2
  28. data/lib/project_types/script/layers/domain/push_package.rb +0 -3
  29. data/lib/project_types/script/layers/domain/script_config.rb +6 -4
  30. data/lib/project_types/script/layers/domain/script_project.rb +1 -0
  31. data/lib/project_types/script/layers/infrastructure/errors.rb +47 -24
  32. data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_task_runner.rb +2 -12
  33. data/lib/project_types/script/layers/infrastructure/languages/project_creator.rb +1 -0
  34. data/lib/project_types/script/layers/infrastructure/languages/task_runner.rb +1 -0
  35. data/lib/project_types/script/layers/infrastructure/languages/typescript_task_runner.rb +2 -12
  36. data/lib/project_types/script/layers/infrastructure/languages/wasm_project_creator.rb +15 -0
  37. data/lib/project_types/script/layers/infrastructure/languages/wasm_task_runner.rb +36 -0
  38. data/lib/project_types/script/layers/infrastructure/metadata_repository.rb +18 -0
  39. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +7 -8
  40. data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +45 -54
  41. data/lib/project_types/script/layers/infrastructure/script_service.rb +35 -12
  42. data/lib/project_types/script/layers/infrastructure/script_uploader.rb +22 -9
  43. data/lib/project_types/script/loaders/project.rb +2 -1
  44. data/lib/project_types/script/messages/messages.rb +94 -88
  45. data/lib/project_types/script/ui/error_handler.rb +75 -38
  46. data/lib/project_types/theme/commands/check.rb +3 -0
  47. data/lib/project_types/theme/commands/delete.rb +3 -0
  48. data/lib/project_types/theme/commands/init.rb +3 -0
  49. data/lib/project_types/theme/commands/language_server.rb +3 -0
  50. data/lib/project_types/theme/commands/package.rb +3 -0
  51. data/lib/project_types/theme/commands/publish.rb +3 -0
  52. data/lib/project_types/theme/commands/pull.rb +12 -1
  53. data/lib/project_types/theme/commands/push.rb +12 -1
  54. data/lib/project_types/theme/commands/serve.rb +3 -0
  55. data/lib/project_types/theme/messages/messages.rb +4 -0
  56. data/lib/shopify_cli/command/sub_command.rb +2 -0
  57. data/lib/shopify_cli/command.rb +66 -0
  58. data/lib/shopify_cli/commands/app/create/node.rb +3 -0
  59. data/lib/shopify_cli/commands/app/create/rails.rb +3 -0
  60. data/lib/shopify_cli/commands/app/create.rb +3 -0
  61. data/lib/shopify_cli/commands/app/deploy.rb +3 -0
  62. data/lib/shopify_cli/commands/app/serve.rb +3 -0
  63. data/lib/shopify_cli/commands/login.rb +4 -10
  64. data/lib/shopify_cli/constants.rb +18 -2
  65. data/lib/shopify_cli/core/executor.rb +4 -4
  66. data/lib/shopify_cli/environment.rb +61 -16
  67. data/lib/shopify_cli/exception_reporter.rb +9 -0
  68. data/lib/shopify_cli/github/issue_url_generator.rb +19 -8
  69. data/lib/shopify_cli/identity_auth/env_auth_token.rb +34 -0
  70. data/lib/shopify_cli/identity_auth.rb +36 -18
  71. data/lib/shopify_cli/messages/messages.rb +2 -2
  72. data/lib/shopify_cli/method_object.rb +21 -9
  73. data/lib/shopify_cli/partners_api.rb +7 -2
  74. data/lib/shopify_cli/result.rb +61 -59
  75. data/lib/shopify_cli/services/app/create/rails_service.rb +37 -13
  76. data/lib/shopify_cli/task.rb +5 -3
  77. data/lib/shopify_cli/theme/file.rb +2 -2
  78. data/lib/shopify_cli/theme/filter/path_matcher.rb +38 -0
  79. data/lib/shopify_cli/theme/ignore_filter.rb +14 -18
  80. data/lib/shopify_cli/theme/include_filter.rb +65 -0
  81. data/lib/shopify_cli/theme/syncer.rb +17 -2
  82. data/lib/shopify_cli/utilities.rb +7 -0
  83. data/lib/shopify_cli/version.rb +1 -1
  84. data/lib/shopify_cli.rb +3 -1
  85. data/vendor/deps/cli-kit/lib/cli/kit/system.rb +11 -6
  86. data/vendor/deps/cli-kit/lib/cli/kit/util.rb +5 -1
  87. data/vendor/deps/cli-ui/lib/cli/ui/os.rb +6 -4
  88. data/vendor/deps/ruby2_keywords/LICENSE +22 -0
  89. data/vendor/deps/ruby2_keywords/README.md +67 -0
  90. data/vendor/deps/ruby2_keywords/Rakefile +54 -0
  91. data/vendor/deps/ruby2_keywords/lib/ruby2_keywords.rb +57 -0
  92. data/vendor/deps/ruby2_keywords/ruby2_keywords.gemspec +18 -0
  93. data/vendor/deps/ruby2_keywords/test/test_keyword.rb +41 -0
  94. data/vendor/lib/semantic/version.rb +0 -1
  95. metadata +18 -3
  96. 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
- library_name = extension_point.libraries.for(script_project.language)&.package
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
- ) unless library_name
22
+ ) if library.nil? && (script_project.language != "wasm")
21
23
 
22
- library = {
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: library)
29
-
30
- UI::PrintingSpinner.spin(ctx, ctx.message("script.application.pushing")) do |p_ctx, spinner|
31
- package = Infrastructure::PushPackageRepository.new(ctx: p_ctx).get_push_package(
32
- script_project: script_project,
33
- compiled_type: task_runner.compiled_type,
34
- metadata: task_runner.metadata,
35
- library: library,
36
- )
37
- script_service = Infrastructure::ServiceLocator.script_service(
38
- ctx: p_ctx,
39
- api_key: script_project.api_key
40
- )
41
- module_upload_url = Infrastructure::ScriptUploader.new(script_service).upload(package.script_content)
42
- uuid = script_service.set_app_script(
43
- uuid: package.uuid,
44
- extension_point_type: package.extension_point_type,
45
- force: force,
46
- metadata: package.metadata,
47
- script_config: package.script_config,
48
- module_upload_url: module_upload_url,
49
- library: package.library,
50
- )
51
- if ShopifyCLI::Environment.interactive?
52
- script_project_repo.update_env(uuid: uuid)
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; end
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, libray_config|
46
- ExtensionPointLibrary.new(language, libray_config)
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
- raise Errors::MissingScriptConfigFieldError, field if content[field].nil?
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
@@ -16,6 +16,7 @@ module Script
16
16
  property! :language, accepts: String
17
17
 
18
18
  property :script_config, accepts: ScriptConfig
19
+ property :input_query, accepts: String
19
20
 
20
21
  def initialize(*)
21
22
  super
@@ -5,65 +5,79 @@ module Script
5
5
  module Infrastructure
6
6
  module Errors
7
7
  class BuildError < ScriptProjectError; end
8
- class ScriptConfigSyntaxError < ScriptProjectError; end
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 InvalidScriptConfigYmlDefinitionError < ScriptProjectError; end
45
-
46
- class InvalidScriptJsonDefinitionError < ScriptProjectError; end
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
- @field = field
68
+ @filename = filename
69
+ @serialization_format = serialization_format
53
70
  end
54
71
  end
55
72
 
56
- class MissingScriptJsonFieldError < ScriptProjectError
57
- attr_reader :field
58
- def initialize(field)
73
+ class NoScriptConfigFileError < ScriptProjectError
74
+ attr_reader :filename
75
+ def initialize(filename)
59
76
  super()
60
- @field = field
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 metadata
41
- unless @ctx.file_exist?(METADATA_FILE)
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)
@@ -28,6 +28,7 @@ module Script
28
28
  project_creators = {
29
29
  "assemblyscript" => AssemblyScriptProjectCreator,
30
30
  "typescript" => TypeScriptProjectCreator,
31
+ "wasm" => WasmProjectCreator,
31
32
  }
32
33
 
33
34
  raise Errors::ProjectCreatorNotFoundError unless project_creators[language]
@@ -8,6 +8,7 @@ module Script
8
8
  TASK_RUNNERS = {
9
9
  "assemblyscript" => AssemblyScriptTaskRunner,
10
10
  "typescript" => TypeScriptTaskRunner,
11
+ "wasm" => WasmTaskRunner,
11
12
  }
12
13
 
13
14
  def self.for(ctx, language, script_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 metadata
42
- unless @ctx.file_exist?(METADATA_FILE)
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,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Script
4
+ module Layers
5
+ module Infrastructure
6
+ module Languages
7
+ class WasmProjectCreator < ProjectCreator
8
+ def self.config_file
9
+ "script.config.yml"
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -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:, compiled_type:, metadata:, library:)
11
- build_file_path = file_path(script_project.id, compiled_type)
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:, compiled_type:, metadata:, library:)
27
- build_file_path = file_path(script_project.id, compiled_type)
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, compiled_type)
50
- "#{path_to_script}/build/script.#{compiled_type}"
48
+ def file_path(path_to_script)
49
+ "#{path_to_script}/build/script.wasm"
51
50
  end
52
51
  end
53
52
  end