vite_ruby 3.0.2 → 3.0.6

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: 9cdcbf5bc964a78456156b8cd05e946e9f737a20832af1077fc5821c3340b135
4
- data.tar.gz: 87bbae5376b7873a420e802df908c8fb0f544dd18d6c7b32d9464248acf08bcd
3
+ metadata.gz: a205056fa6566aba9f30cd801ae38e347ea60a962ca4bf02ea8302153362e0fc
4
+ data.tar.gz: 84637ce863e221000cecd5ae4a524a5a54196f8feee6ced7a9cf4f34a00604b4
5
5
  SHA512:
6
- metadata.gz: c7fdecb430b866c5fcfeca1b93389c35483a2937739b45cbccc15366bfe4f52792e9c3218db44357bbeaa41631894599da44ea22efcf0dcf24a00d25a1448277
7
- data.tar.gz: d91ec79eb0d1e1f81e4eeb32d3f9a660b76ae5bdf4ed02b393a2b6289bcc2a8627ca4a6e997acd375c05c51a18910269bd01fd86cc588bbd3687aede5864017b
6
+ metadata.gz: 2056cdd9c5663e9353a7fc5377227723ea7d1b00a78c27856ea434ca116c4e4274a912e449c782d13cdc063ef3e72148ba7af2eaddb2d5d893b5ec8e2029908c
7
+ data.tar.gz: c6add178ee83b16a6bcb0c72cf9935be58eb79290a36ab692b5f4a481d1232afb258f7bf84506795e37f098fcec9c54f4cfb279940312387e4330f02224492e6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,52 @@
1
+ ## [3.0.6](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@3.0.5...vite_ruby@3.0.6) (2021-12-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * allow providing an empty public output dir (close [#161](https://github.com/ElMassimo/vite_ruby/issues/161)) ([#164](https://github.com/ElMassimo/vite_ruby/issues/164)) ([ef48c9b](https://github.com/ElMassimo/vite_ruby/commit/ef48c9b39084a96364a783fa670bd6ec68dfa289))
7
+
8
+
9
+ ### Features
10
+
11
+ * support ruby config file for advanced configuration (close [#162](https://github.com/ElMassimo/vite_ruby/issues/162)) ([34e63fd](https://github.com/ElMassimo/vite_ruby/commit/34e63fdd546078dfc94f2c546b096aa296a47d37))
12
+
13
+
14
+
15
+ ## [3.0.5](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@3.0.4...vite_ruby@3.0.5) (2021-12-17)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * ensure vite_plugin_legacy is upgraded by the upgrade command ([2f9437d](https://github.com/ElMassimo/vite_ruby/commit/2f9437d248e27aa03b5b8a1df3e3d6a52c791cd1))
21
+
22
+
23
+
24
+ ## [3.0.4](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@3.0.3...vite_ruby@3.0.4) (2021-12-17)
25
+
26
+ ### BREAKING CHANGES
27
+
28
+ * if using `vite_plugin_legacy`, make sure to upgrade to 3.0.1
29
+
30
+ ### Bug Fixes
31
+
32
+ * handle new virtual legacy-polyfill name ([#157](https://github.com/ElMassimo/vite_ruby/issues/157)) ([a34e77f](https://github.com/ElMassimo/vite_ruby/commit/a34e77f3b342c9171adc50adfd5220b57bddb961))
33
+
34
+
35
+ ## [3.0.3](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@3.0.2...vite_ruby@3.0.3) (2021-12-09)
36
+
37
+
38
+ ### Bug Fixes
39
+
40
+ * ensure bundler does not keep generating binstubs ([0dc133a](https://github.com/ElMassimo/vite_ruby/commit/0dc133a23f6caa5526fc071e0afd98f91fc1f9f6))
41
+ * explicitly require socket to enable usage in bare ruby ([cf22165](https://github.com/ElMassimo/vite_ruby/commit/cf22165fa3cc58df4c52bed154372abef4f3eff1))
42
+
43
+
44
+ ### Features
45
+
46
+ * add 'base' setting ([#152](https://github.com/ElMassimo/vite_ruby/issues/152)) ([fb7642f](https://github.com/ElMassimo/vite_ruby/commit/fb7642f849b7fe879c02e543962a72dcc1b1c48c))
47
+
48
+
49
+
1
50
  ## [3.0.2](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@3.0.1...vite_ruby@3.0.2) (2021-10-29)
2
51
 
3
52
 
data/default.vite.json CHANGED
@@ -16,5 +16,6 @@
16
16
  "port": 3036,
17
17
  "hideBuildConsoleOutput": false,
18
18
  "viteBinPath": "node_modules/.bin/vite",
19
- "watchAdditionalPaths": []
19
+ "watchAdditionalPaths": [],
20
+ "base": ""
20
21
  }
@@ -63,6 +63,7 @@ class ViteRuby::Commands
63
63
  # Internal: Installs the binstub for the CLI in the appropriate path.
64
64
  def install_binstubs
65
65
  `bundle binstub vite_ruby --path #{ config.root.join('bin') }`
66
+ `bundle config --delete bin`
66
67
  end
67
68
 
68
69
  # Internal: Verifies if ViteRuby is properly installed.
@@ -43,6 +43,12 @@ class ViteRuby::Config
43
43
  root.join(source_code_dir)
44
44
  end
45
45
 
46
+ # Public: Loads an optional config/vite.rb file that can modify ViteRuby.env
47
+ def load_ruby_config
48
+ rb_config_path = File.expand_path(config_path.sub(/.json$/, '.rb'), root)
49
+ load rb_config_path if File.exist?(rb_config_path)
50
+ end
51
+
46
52
  # Public: Sets additional environment variables for vite-plugin-ruby.
47
53
  def to_env
48
54
  CONFIGURABLE_WITH_ENV.each_with_object({}) do |option, env|
@@ -59,7 +65,7 @@ class ViteRuby::Config
59
65
  dir.start_with?('~/') || dir.start_with?(source_code_dir)
60
66
  },
61
67
  "#{ source_code_dir }/**/*",
62
- config_path,
68
+ config_path.sub(/.json$/, '.{rb,json}'),
63
69
  *DEFAULT_WATCHED_PATHS,
64
70
  ].freeze
65
71
  end
@@ -31,10 +31,14 @@ private
31
31
 
32
32
  def rewrite_uri_for_vite(env)
33
33
  uri = env.fetch('REQUEST_URI') { [env['PATH_INFO'], env['QUERY_STRING']].reject { |str| str.to_s.strip.empty? }.join('?') }
34
+ env['PATH_INFO'], env['QUERY_STRING'] = (env['REQUEST_URI'] = normalize_uri(uri)).split('?')
35
+ end
36
+
37
+ def normalize_uri(uri)
38
+ uri
34
39
  .sub(HOST_WITH_PORT_REGEX, '/') # Hanami adds the host and port.
35
40
  .sub('.ts.js', '.ts') # Hanami's javascript helper always adds the extension.
36
41
  .sub(/(\.(?!min|module)\w+)\.css$/, '\1') # Rails' stylesheet_link_tag always adds the extension.
37
- env['PATH_INFO'], env['QUERY_STRING'] = (env['REQUEST_URI'] = uri).split('?')
38
42
  end
39
43
 
40
44
  def forward_to_vite_dev_server(env)
@@ -49,7 +53,7 @@ private
49
53
  end
50
54
 
51
55
  def vite_should_handle?(env)
52
- path = env['PATH_INFO']
56
+ path = normalize_uri(env['PATH_INFO'])
53
57
  return true if path.start_with?(vite_asset_url_prefix) # Vite asset
54
58
  return true if path.start_with?(VITE_DEPENDENCY_PREFIX) # Packages and imports
55
59
  return true if file_in_vite_root?(path) # Fallback if Vite can serve the file
@@ -61,6 +65,6 @@ private
61
65
  end
62
66
 
63
67
  def vite_asset_url_prefix
64
- @vite_asset_url_prefix ||= "/#{ config.public_output_dir }/"
68
+ @vite_asset_url_prefix ||= config.public_output_dir.empty? ? "\0" : "/#{ config.public_output_dir }/"
65
69
  end
66
70
  end
@@ -147,9 +147,10 @@ private
147
147
 
148
148
  # Internal: Resolves the manifest entry name for the specified resource.
149
149
  def resolve_entry_name(name, type: nil)
150
- name = with_file_extension(name.to_s, type)
150
+ return resolve_virtual_entry(name) if type == :virtual
151
151
 
152
- raise ArgumentError, "Asset names can not be relative. Found: #{ name }" if name.start_with?('.') && !name.include?('legacy-polyfills')
152
+ name = with_file_extension(name.to_s, type)
153
+ raise ArgumentError, "Asset names can not be relative. Found: #{ name }" if name.start_with?('.')
153
154
 
154
155
  # Explicit path, relative to the source_code_dir.
155
156
  name.sub(%r{^~/(.+)$}) { return Regexp.last_match(1) }
@@ -171,6 +172,11 @@ private
171
172
  end
172
173
  end
173
174
 
175
+ # Internal: Resolves a virtual entry by walking all the manifest keys.
176
+ def resolve_virtual_entry(name)
177
+ manifest.keys.find { |file| file.include?(name) } || name
178
+ end
179
+
174
180
  # Internal: Adds a file extension to the file name, unless it already has one.
175
181
  def with_file_extension(name, entry_type)
176
182
  if File.extname(name).empty? && (ext = extension_for_type(entry_type))
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ViteRuby
4
- VERSION = '3.0.2'
4
+ VERSION = '3.0.6'
5
5
 
6
6
  # Internal: Versions used by default when running `vite install`.
7
7
  DEFAULT_VITE_VERSION = '^2.6.13'
data/lib/vite_ruby.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require 'logger'
4
4
  require 'forwardable'
5
5
  require 'pathname'
6
+ require 'socket'
6
7
 
7
8
  require 'zeitwerk'
8
9
  loader = Zeitwerk::Loader.for_gem
@@ -26,6 +27,7 @@ class ViteRuby
26
27
  'vite_padrino' => 'padrino',
27
28
  'jekyll-vite' => 'jekyll',
28
29
  'vite_rails_legacy' => 'rails',
30
+ 'vite_plugin_legacy' => 'rack',
29
31
  }
30
32
 
31
33
  class << self
@@ -120,7 +122,12 @@ class ViteRuby
120
122
 
121
123
  # Public: Current instance configuration for Vite.
122
124
  def config
123
- @config ||= ViteRuby::Config.resolve_config(**@config_options)
125
+ unless defined?(@config)
126
+ @config = ViteRuby::Config.resolve_config(**@config_options)
127
+ @config.load_ruby_config
128
+ end
129
+
130
+ @config
124
131
  end
125
132
 
126
133
  # Public: Enables looking up assets managed by Vite using name and type.
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.0.2
4
+ version: 3.0.6
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: 2021-10-29 00:00:00.000000000 Z
11
+ date: 2021-12-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-cli
@@ -201,8 +201,8 @@ homepage: https://github.com/ElMassimo/vite_ruby
201
201
  licenses:
202
202
  - MIT
203
203
  metadata:
204
- source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@3.0.2/vite_ruby
205
- changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@3.0.2/vite_ruby/CHANGELOG.md
204
+ source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@3.0.6/vite_ruby
205
+ changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@3.0.6/vite_ruby/CHANGELOG.md
206
206
  post_install_message: "Thanks for installing Vite Ruby!\n\nIf you upgraded the gem
207
207
  manually, please run:\n\tbundle exec vite upgrade"
208
208
  rdoc_options: []