vite_ruby 3.11.0 → 4.0.0.alpha1

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.
data/lib/vite_ruby.rb CHANGED
@@ -1,39 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "json"
4
- require "logger"
5
- require "forwardable"
6
- require "pathname"
7
- require "socket"
3
+ require 'logger'
4
+ require 'forwardable'
5
+ require 'pathname'
6
+ require 'socket'
8
7
 
9
- require "zeitwerk"
8
+ require 'zeitwerk'
10
9
  loader = Zeitwerk::Loader.for_gem
11
- loader.ignore("#{__dir__}/install")
12
- loader.ignore("#{__dir__}/tasks")
13
- loader.ignore("#{__dir__}/exe")
14
- loader.inflector.inflect("cli" => "CLI")
15
- loader.inflector.inflect("ssr" => "SSR")
16
- loader.inflector.inflect("io" => "IO")
10
+ loader.ignore("#{ __dir__ }/install")
11
+ loader.ignore("#{ __dir__ }/tasks")
12
+ loader.ignore("#{ __dir__ }/exe")
13
+ loader.inflector.inflect('cli' => 'CLI')
14
+ loader.inflector.inflect('io' => 'IO')
17
15
  loader.setup
18
16
 
17
+ require 'vite_ruby/version'
18
+
19
19
  class ViteRuby
20
20
  # Internal: Prefix used for environment variables that modify the configuration.
21
- ENV_PREFIX = "VITE_RUBY"
21
+ ENV_PREFIX = 'VITE_RUBY'
22
22
 
23
23
  # Internal: Companion libraries for Vite Ruby, and their target framework.
24
24
  COMPANION_LIBRARIES = {
25
- "vite_rails" => "rails",
26
- "vite_hanami" => "hanami",
27
- "vite_padrino" => "padrino",
28
- "jekyll-vite" => "jekyll",
29
- "vite_rails_legacy" => "rails",
30
- "vite_plugin_legacy" => "rack",
25
+ 'vite_rails' => 'rails',
26
+ 'vite_hanami' => 'hanami',
27
+ 'vite_padrino' => 'padrino',
28
+ 'jekyll-vite' => 'jekyll',
29
+ 'vite_rails_legacy' => 'rails',
30
+ 'vite_plugin_legacy' => 'rack',
31
31
  }
32
32
 
33
33
  class << self
34
34
  extend Forwardable
35
35
 
36
- def_delegators :instance, :config, :configure, :commands, :digest, :env, :run, :run_proxy?
36
+ def_delegators :instance, :config, :commands, :env, :run, :run_proxy?
37
37
  def_delegators :config, :mode
38
38
 
39
39
  def instance
@@ -47,7 +47,7 @@ class ViteRuby
47
47
 
48
48
  # Internal: Loads all available rake tasks.
49
49
  def install_tasks
50
- load File.expand_path("tasks/vite.rake", __dir__)
50
+ load File.expand_path('tasks/vite.rake', __dir__)
51
51
  end
52
52
 
53
53
  # Internal: Creates a new instance with the specified options.
@@ -58,11 +58,11 @@ class ViteRuby
58
58
  # Internal: Detects if the application has installed a framework-specific
59
59
  # variant of Vite Ruby.
60
60
  def framework_libraries
61
- COMPANION_LIBRARIES.filter_map { |name, framework|
61
+ COMPANION_LIBRARIES.map { |name, framework|
62
62
  if library = Gem.loaded_specs[name]
63
63
  [framework, library]
64
64
  end
65
- }
65
+ }.compact
66
66
  end
67
67
  end
68
68
 
@@ -76,18 +76,17 @@ class ViteRuby
76
76
  @logger ||= Logger.new($stdout)
77
77
  end
78
78
 
79
- # Public: Returns a digest of all the watched files, allowing to detect
80
- # changes. Useful to perform version checks in single-page applications.
81
- def digest
82
- builder.send(:watched_files_digest)
83
- end
84
-
85
79
  # Public: Returns true if the Vite development server is currently running.
80
+ # NOTE: Checks only once every second since every lookup calls this method.
86
81
  def dev_server_running?
87
- return false unless dev_mode?
88
- return dev_server_connected? if config.dev_server_connection_check
89
-
90
- !dev_server_meta.nil?
82
+ return false unless run_proxy?
83
+ return true if defined?(@running_at) && @running_at && Time.now - @running_at < 1
84
+
85
+ Socket.tcp(config.host, config.port, connect_timeout: config.dev_server_connect_timeout).close
86
+ @running_at = Time.now
87
+ true
88
+ rescue StandardError
89
+ @running_at = false
91
90
  end
92
91
 
93
92
  # Public: Additional environment variables to pass to Vite.
@@ -98,15 +97,13 @@ class ViteRuby
98
97
  @env ||= ENV.select { |key, _| key.start_with?(ENV_PREFIX) }
99
98
  end
100
99
 
101
- # Public: Whether we are in an environment that might run the Vite dev server.
102
- def dev_mode?
103
- config.mode == "development" || (config.mode == "test" && !ENV["CI"])
104
- rescue => error
105
- logger.error("Failed to check mode for Vite: #{error.message}")
100
+ # Public: The proxy for assets should only run in development mode.
101
+ def run_proxy?
102
+ config.mode == 'development' || (config.mode == 'test' && !ENV['CI'])
103
+ rescue StandardError => error
104
+ logger.error("Failed to check mode for Vite: #{ error.message }")
106
105
  false
107
106
  end
108
- # Public: The proxy for assets should only run in development mode.
109
- alias_method :run_proxy?, :dev_mode?
110
107
 
111
108
  # Internal: Executes the vite binary.
112
109
  def run(argv, **options)
@@ -126,50 +123,15 @@ class ViteRuby
126
123
  # Public: Current instance configuration for Vite.
127
124
  def config
128
125
  unless defined?(@config)
129
- configure
126
+ @config = ViteRuby::Config.resolve_config(**@config_options)
130
127
  @config.load_ruby_config
131
128
  end
132
129
 
133
130
  @config
134
131
  end
135
132
 
136
- # Public: Allows overriding the configuration for this instance.
137
- def configure(**options)
138
- @config = ViteRuby::Config.resolve_config(**@config_options, **options)
139
- end
140
-
141
133
  # Public: Enables looking up assets managed by Vite using name and type.
142
134
  def manifest
143
135
  @manifest ||= ViteRuby::Manifest.new(self)
144
136
  end
145
-
146
- private
147
-
148
- # Internal: Returns true if a TCP connection to the dev server can be opened.
149
- def dev_server_connected?
150
- return @running if defined?(@running) && Time.now - @running_checked_at < 1
151
-
152
- begin
153
- Socket.tcp(config.host, config.port, connect_timeout: config.dev_server_connect_timeout).close
154
- @running = true
155
- rescue
156
- @running = false
157
- ensure
158
- @running_checked_at = Time.now
159
- end
160
- end
161
-
162
- # Internal: Metadata written by the running Vite dev server, or nil when stopped.
163
- def dev_server_meta
164
- return @dev_server_meta if defined?(@dev_server_meta) && Time.now - @dev_server_meta_checked_at < 1
165
-
166
- path = config.dev_server_meta_path
167
- @dev_server_meta = (JSON.parse(path.read) if path.exist?)
168
- rescue JSON::ParserError, SystemCallError
169
- @dev_server_meta = nil
170
- ensure
171
- @dev_server_meta_checked_at = Time.now
172
- end
173
137
  end
174
-
175
- require "vite_ruby/version"
metadata CHANGED
@@ -1,66 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vite_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.0
4
+ version: 4.0.0.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Máximo Mussini
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2022-01-18 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: dry-cli
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - ">="
17
- - !ruby/object:Gem::Version
18
- version: '0.7'
19
- - - "<"
20
- - !ruby/object:Gem::Version
21
- version: '2'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- version: '0.7'
29
- - - "<"
30
- - !ruby/object:Gem::Version
31
- version: '2'
32
- - !ruby/object:Gem::Dependency
33
- name: logger
34
15
  requirement: !ruby/object:Gem::Requirement
35
16
  requirements:
36
17
  - - "~>"
37
18
  - !ruby/object:Gem::Version
38
- version: '1.6'
19
+ version: 0.7.0
39
20
  type: :runtime
40
21
  prerelease: false
41
22
  version_requirements: !ruby/object:Gem::Requirement
42
23
  requirements:
43
24
  - - "~>"
44
25
  - !ruby/object:Gem::Version
45
- version: '1.6'
46
- - !ruby/object:Gem::Dependency
47
- name: mutex_m
48
- requirement: !ruby/object:Gem::Requirement
49
- requirements:
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: '0'
53
- type: :runtime
54
- prerelease: false
55
- version_requirements: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: '0'
26
+ version: 0.7.0
60
27
  - !ruby/object:Gem::Dependency
61
28
  name: rack-proxy
62
29
  requirement: !ruby/object:Gem::Requirement
63
30
  requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.6'
64
34
  - - ">="
65
35
  - !ruby/object:Gem::Version
66
36
  version: 0.6.1
@@ -68,6 +38,9 @@ dependencies:
68
38
  prerelease: false
69
39
  version_requirements: !ruby/object:Gem::Requirement
70
40
  requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '0.6'
71
44
  - - ">="
72
45
  - !ruby/object:Gem::Version
73
46
  version: 0.6.1
@@ -175,14 +148,15 @@ dependencies:
175
148
  requirements:
176
149
  - - "<"
177
150
  - !ruby/object:Gem::Version
178
- version: '0.23'
151
+ version: '0.18'
179
152
  type: :development
180
153
  prerelease: false
181
154
  version_requirements: !ruby/object:Gem::Requirement
182
155
  requirements:
183
156
  - - "<"
184
157
  - !ruby/object:Gem::Version
185
- version: '0.23'
158
+ version: '0.18'
159
+ description:
186
160
  email:
187
161
  - maximomussini@gmail.com
188
162
  executables:
@@ -205,7 +179,6 @@ files:
205
179
  - lib/vite_ruby/cli/dev.rb
206
180
  - lib/vite_ruby/cli/file_utils.rb
207
181
  - lib/vite_ruby/cli/install.rb
208
- - lib/vite_ruby/cli/ssr.rb
209
182
  - lib/vite_ruby/cli/upgrade.rb
210
183
  - lib/vite_ruby/cli/upgrade_packages.rb
211
184
  - lib/vite_ruby/cli/version.rb
@@ -228,9 +201,8 @@ homepage: https://github.com/ElMassimo/vite_ruby
228
201
  licenses:
229
202
  - MIT
230
203
  metadata:
231
- source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@3.11.0/vite_ruby
232
- changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@3.11.0/vite_ruby/CHANGELOG.md
233
- rubygems_mfa_required: 'true'
204
+ source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@4.0.0.alpha1/vite_ruby
205
+ changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@4.0.0.alpha1/vite_ruby/CHANGELOG.md
234
206
  post_install_message: "Thanks for installing Vite Ruby!\n\nIf you upgraded the gem
235
207
  manually, please run:\n\tbundle exec vite upgrade"
236
208
  rdoc_options: []
@@ -240,14 +212,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
240
212
  requirements:
241
213
  - - ">="
242
214
  - !ruby/object:Gem::Version
243
- version: '2.5'
215
+ version: '2.4'
244
216
  required_rubygems_version: !ruby/object:Gem::Requirement
245
217
  requirements:
246
- - - ">="
218
+ - - ">"
247
219
  - !ruby/object:Gem::Version
248
- version: '0'
220
+ version: 1.3.1
249
221
  requirements: []
250
- rubygems_version: 4.0.16
222
+ rubygems_version: 3.2.32
223
+ signing_key:
251
224
  specification_version: 4
252
225
  summary: Use Vite in Ruby and bring joy to your JavaScript experience
253
226
  test_files: []
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class ViteRuby::CLI::SSR < ViteRuby::CLI::Vite
4
- DEFAULT_ENV = CURRENT_ENV || "production"
5
- JS_EXTENSIONS = %w[js mjs cjs]
6
-
7
- desc "Run the resulting app from building in SSR mode."
8
- executable_options
9
-
10
- def call(mode:, inspect: false, trace_deprecation: false)
11
- ViteRuby.env["VITE_RUBY_MODE"] = mode
12
-
13
- ssr_entrypoint = JS_EXTENSIONS
14
- .map { |ext| ViteRuby.config.ssr_output_dir.join("ssr.#{ext}") }
15
- .find(&:exist?)
16
-
17
- raise ArgumentError, "No ssr entrypoint found `#{ViteRuby.config.ssr_output_dir.relative_path_from(ViteRuby.config.root)}/ssr.{#{JS_EXTENSIONS.join(",")}}`. Have you run bin/vite build --ssr?" unless ssr_entrypoint
18
-
19
- cmd = [
20
- "node",
21
- ("--inspect-brk" if inspect),
22
- ("--trace-deprecation" if trace_deprecation),
23
- ssr_entrypoint,
24
- ]
25
- Kernel.exec(*cmd.compact.map(&:to_s))
26
- end
27
- end