vite_ruby 3.2.11 → 3.2.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8ca61fff8bf04ca97fb7c12f502df5b49d214d063309b98704b182e5e149b7e
4
- data.tar.gz: 124212d3550eaa9ed5825bd05b88258ab7e990edd778809817bc23eacd4b2842
3
+ metadata.gz: 2850c006c8005addf043f212c1a7e42a39f20f20b1935db704d94cc637feb4da
4
+ data.tar.gz: 4674de49f84fcdad1c453c9e17b210363af477346f3c515c75ecacf16ee4e781
5
5
  SHA512:
6
- metadata.gz: 2af7324f684cfd6824b80d14d667cff6c1f3dbbc7829d51ea8f0bf403fdf61f09c3b3d008e2446314ed6b0a8ae49dace5157ca1a2968622498d8ab4b59eec9ae
7
- data.tar.gz: e7e53a9e3262f170b7a68dbe5b505cb8f1e96bcbd546a3c8cdd17f896946ba0df538db63590725eca038f79fef162562f3bc8eb79e0059519fae2a4065916d59
6
+ metadata.gz: c7225d5ca1173bc2195a7f6c9ab60eb324f2d1dd53b8e8a5176b152f43929904e0290a99bb6c8c6d3cdca57900c6c05080f70bbaaee2457ce233512de8530891
7
+ data.tar.gz: ed8ec38933ba729e41eafd7269f8fce03f82c9676055bfe135d7856c17d11fd15a5cb1cb33f83b875f1d52ec374cf26fe3ba4235843232841383dd8cceccbe9f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## [3.2.12](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@3.2.11...vite_ruby@3.2.12) (2022-12-02)
2
+
3
+
4
+ ### Features
5
+
6
+ * add experimental `skipProxy` setting ([#315](https://github.com/ElMassimo/vite_ruby/issues/315)) ([e9285f6](https://github.com/ElMassimo/vite_ruby/commit/e9285f62c76cc0cbbc5dc99d977e8aef30d08b6f))
7
+ * add ViteRuby.instance.configure API to be used in config/vite.rb ([b5b8681](https://github.com/ElMassimo/vite_ruby/commit/b5b8681f85f5388a56d72c9b05dbfc95d5ba607b))
8
+
9
+
10
+ ### Performance Improvements
11
+
12
+ * avoid calculating digest on each lookup ([#314](https://github.com/ElMassimo/vite_ruby/issues/314)) ([62df93a](https://github.com/ElMassimo/vite_ruby/commit/62df93a15c09c652a8b7496e26cf85d5d69acce7))
13
+
14
+
15
+
1
16
  ## [3.2.11](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@3.2.10...vite_ruby@3.2.11) (2022-11-13)
2
17
 
3
18
 
data/default.vite.json CHANGED
@@ -11,6 +11,7 @@
11
11
  "entrypointsDir": "entrypoints",
12
12
  "sourceCodeDir": "app/frontend",
13
13
  "skipCompatibilityCheck": false,
14
+ "skipProxy": false,
14
15
  "host": "localhost",
15
16
  "https": null,
16
17
  "port": 3036,
@@ -52,10 +52,13 @@ private
52
52
  # Internal: Returns a digest of all the watched files, allowing to detect
53
53
  # changes, and skip Vite builds if no files have changed.
54
54
  def watched_files_digest
55
+ return @last_digest if @last_digest_at && Time.now - @last_digest_at < 1
56
+
55
57
  config.within_root do
56
58
  files = Dir[*config.watched_paths].reject { |f| File.directory?(f) }
57
59
  file_ids = files.sort.map { |f| "#{ File.basename(f) }/#{ Digest::SHA1.file(f).hexdigest }" }
58
- Digest::SHA1.hexdigest(file_ids.join('/'))
60
+ @last_digest_at = Time.now
61
+ @last_digest = Digest::SHA1.hexdigest(file_ids.join('/'))
59
62
  end
60
63
  end
61
64
 
@@ -5,6 +5,10 @@ require 'json'
5
5
  # Public: Allows to resolve configuration sourced from `config/vite.json` and
6
6
  # environment variables, combining them with the default options.
7
7
  class ViteRuby::Config
8
+ def origin
9
+ "#{ protocol }://#{ host_with_port }"
10
+ end
11
+
8
12
  def protocol
9
13
  https ? 'https' : 'http'
10
14
  end
@@ -90,7 +94,7 @@ private
90
94
  config['root'] = Pathname.new(config['root'])
91
95
  config['build_cache_dir'] = config['root'].join(config['build_cache_dir'])
92
96
  config['ssr_output_dir'] = config['root'].join(config['ssr_output_dir'])
93
- coerce_booleans(config, 'auto_build', 'hide_build_console_output', 'https', 'skip_compatibility_check')
97
+ coerce_booleans(config, 'auto_build', 'hide_build_console_output', 'https', 'skip_compatibility_check', 'skip_proxy')
94
98
  end
95
99
 
96
100
  # Internal: Coerces configuration options to boolean.
@@ -125,13 +125,18 @@ private
125
125
 
126
126
  # Internal: Scopes an asset to the output folder in public, as a path.
127
127
  def prefix_vite_asset(path)
128
- File.join("/#{ config.public_output_dir }", path)
128
+ File.join(vite_asset_origin || '/', config.public_output_dir, path)
129
129
  end
130
130
 
131
131
  # Internal: Prefixes an asset with the `asset_host` for tags that do not use
132
132
  # the framework tag helpers.
133
133
  def prefix_asset_with_host(path)
134
- File.join(config.asset_host || '/', config.public_output_dir, path)
134
+ File.join(vite_asset_origin || config.asset_host || '/', config.public_output_dir, path)
135
+ end
136
+
137
+ # Internal: The origin of assets managed by Vite.
138
+ def vite_asset_origin
139
+ config.origin if dev_server_running? && config.skip_proxy
135
140
  end
136
141
 
137
142
  # Internal: Resolves the paths that reference a manifest entry.
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ViteRuby
4
- VERSION = '3.2.11'
4
+ VERSION = '3.2.12'
5
5
 
6
6
  # Internal: Versions used by default when running `vite install`.
7
7
  DEFAULT_VITE_VERSION = '^3.2.0'
data/lib/vite_ruby.rb CHANGED
@@ -32,7 +32,7 @@ class ViteRuby
32
32
  class << self
33
33
  extend Forwardable
34
34
 
35
- def_delegators :instance, :config, :commands, :digest, :env, :run, :run_proxy?
35
+ def_delegators :instance, :config, :configure, :commands, :digest, :env, :run, :run_proxy?
36
36
  def_delegators :config, :mode
37
37
 
38
38
  def instance
@@ -85,7 +85,7 @@ class ViteRuby
85
85
  # NOTE: Checks only once every second since every lookup calls this method.
86
86
  def dev_server_running?
87
87
  return false unless run_proxy?
88
- return true if defined?(@running_at) && @running_at && Time.now - @running_at < 1
88
+ return true if @running_at && Time.now - @running_at < 1
89
89
 
90
90
  Socket.tcp(config.host, config.port, connect_timeout: config.dev_server_connect_timeout).close
91
91
  @running_at = Time.now
@@ -128,13 +128,18 @@ class ViteRuby
128
128
  # Public: Current instance configuration for Vite.
129
129
  def config
130
130
  unless defined?(@config)
131
- @config = ViteRuby::Config.resolve_config(**@config_options)
131
+ configure
132
132
  @config.load_ruby_config
133
133
  end
134
134
 
135
135
  @config
136
136
  end
137
137
 
138
+ # Public: Allows overriding the configuration for this instance.
139
+ def configure(**options)
140
+ @config = ViteRuby::Config.resolve_config(**@config_options, **options)
141
+ end
142
+
138
143
  # Public: Enables looking up assets managed by Vite using name and type.
139
144
  def manifest
140
145
  @manifest ||= ViteRuby::Manifest.new(self)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vite_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.11
4
+ version: 3.2.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Máximo Mussini
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-13 00:00:00.000000000 Z
11
+ date: 2022-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-cli
@@ -202,8 +202,8 @@ homepage: https://github.com/ElMassimo/vite_ruby
202
202
  licenses:
203
203
  - MIT
204
204
  metadata:
205
- source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@3.2.11/vite_ruby
206
- changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@3.2.11/vite_ruby/CHANGELOG.md
205
+ source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@3.2.12/vite_ruby
206
+ changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@3.2.12/vite_ruby/CHANGELOG.md
207
207
  post_install_message: "Thanks for installing Vite Ruby!\n\nIf you upgraded the gem
208
208
  manually, please run:\n\tbundle exec vite upgrade"
209
209
  rdoc_options: []