vite_ruby 1.2.18 → 2.0.0.beta.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9c040d1223758720987dc50a487c8cb2cbf07dba6b9bfb5a8a56b883931615d8
4
- data.tar.gz: a6d9fcf29261cab2f4411830378e7b9658264450ff45feb736db5858cd8db7be
3
+ metadata.gz: db7a467c6b97a89c6704a7f94ff6c20b4b1bb39bd49fbb5d5f0fd67ea754fbdb
4
+ data.tar.gz: edffb992d9fda5dc7993d620037ba2866b3f1ec8bf1561b4ed4e0a420646c6fb
5
5
  SHA512:
6
- metadata.gz: 13b6146ffcea5681a48c377bdabc798016c95ec595448274eb7deb1d64296244969f47c0f8cd4a5da9cde158dfaca746b07e4dee60feb153809b2b420e62fa6a
7
- data.tar.gz: 684bf03f8e55ff25def1f3d051a3e2111644bc1b080a1faa2a2dbc0c85a925a771a2a6979e7068d9b35736fa155703ef0f851cb56e477999897e9bd3fd8c8697
6
+ metadata.gz: f2d8967f4ec47d49e4e829dfdf8aa8a087e576852fbdbe1343e1117f5397348ac40220bed5071715619a4395ea8bfc5521df58000d187e68eee69e021ddb23c5
7
+ data.tar.gz: f08b6882162c082006f4de9a3e105de5ffe9a2c55a53ffb9ec8c1659963c135c4657d7acf964df6a1e2bf521af6a2bfabbfbbde1e53d579f0620b418813eae9f
data/CHANGELOG.md CHANGED
@@ -1,10 +1,16 @@
1
- ## <small>1.2.18 (2021-07-19)</small>
1
+ ## [1.2.20](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.18...vite_ruby@1.2.20) (2021-07-30)
2
2
 
3
- * chore: Avoid inline regex in dev server proxy ([77728aa](https://github.com/ElMassimo/vite_ruby/commit/77728aa))
4
- * test: Update after experimental proxy changes ([1d2e3c7](https://github.com/ElMassimo/vite_ruby/commit/1d2e3c7))
5
- * release: vite_ruby@1.2.18-rc1 ([be92933](https://github.com/ElMassimo/vite_ruby/commit/be92933))
6
- * fix: Proxy entrypoint HMR requests only after verifying the file exists (close #102) ([67c22ec](https://github.com/ElMassimo/vite_ruby/commit/67c22ec)), closes [#102](https://github.com/ElMassimo/vite_ruby/issues/102)
7
3
 
4
+ ### Features
5
+
6
+ * use `asset_host` for Vite client if set during development ([89a338c](https://github.com/ElMassimo/vite_ruby/commit/89a338c2f23e6b43af9dadfd937fe29c82a08b10))
7
+ * Watch Windi CSS config file by default if it exists ([842c5eb](https://github.com/ElMassimo/vite_ruby/commit/842c5eb46cd12887f28ed62cb656d81645c7239c))
8
+
9
+
10
+
11
+ ## [1.2.18](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.17...vite_ruby@1.2.18) (2021-07-19)
12
+
13
+ * fix: Proxy entrypoint HMR requests only after verifying the file exists (close #102) ([67c22ec](https://github.com/ElMassimo/vite_ruby/commit/67c22ec)), closes [#102](https://github.com/ElMassimo/vite_ruby/issues/102)
8
14
 
9
15
 
10
16
  ## [1.2.17](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.16...vite_ruby@1.2.17) (2021-07-12)
data/default.vite.json CHANGED
@@ -1,4 +1,5 @@
1
1
  {
2
+ "additionalInputGlobs": ["{assets,fonts,icons,images}/**/*"],
2
3
  "assetHost": null,
3
4
  "assetsDir": "assets",
4
5
  "autoBuild": false,
data/lib/vite_ruby.rb CHANGED
@@ -18,8 +18,8 @@ class ViteRuby
18
18
  ENV_PREFIX = 'VITE_RUBY'
19
19
 
20
20
  # Internal: Versions used by default when running `vite install`.
21
- DEFAULT_VITE_VERSION = '^2.3.8'
22
- DEFAULT_PLUGIN_VERSION = '^2.0.4'
21
+ DEFAULT_VITE_VERSION = '^2.5.0-beta.2'
22
+ DEFAULT_PLUGIN_VERSION = '^3.0.0-beta.3'
23
23
 
24
24
  # Internal: Companion libraries for Vite Ruby, and their target framework.
25
25
  COMPANION_LIBRARIES = {
@@ -102,6 +102,7 @@ private
102
102
  'package.json',
103
103
  'vite.config.ts',
104
104
  'vite.config.js',
105
+ 'windi.config.ts',
105
106
  config.config_path,
106
107
  ].freeze
107
108
  end
@@ -30,7 +30,7 @@ class ViteRuby::Config
30
30
 
31
31
  # Public: The directory where the entries are located.
32
32
  def resolved_entrypoints_dir
33
- root.join(source_code_dir, entrypoints_dir)
33
+ vite_root_dir.join(entrypoints_dir)
34
34
  end
35
35
 
36
36
  # Internal: The directory where Vite stores its processing cache.
@@ -38,6 +38,11 @@ class ViteRuby::Config
38
38
  root.join('node_modules/.vite')
39
39
  end
40
40
 
41
+ # Public: The directory that Vite uses as root.
42
+ def vite_root_dir
43
+ root.join(source_code_dir)
44
+ end
45
+
41
46
  # Public: Sets additional environment variables for vite-plugin-ruby.
42
47
  def to_env
43
48
  CONFIGURABLE_WITH_ENV.each_with_object({}) do |option, env|
@@ -138,7 +143,7 @@ private
138
143
  DEFAULT_CONFIG = load_json("#{ __dir__ }/../../default.vite.json").freeze
139
144
 
140
145
  # Internal: Configuration options that can not be provided as env vars.
141
- NOT_CONFIGURABLE_WITH_ENV = %w[watch_additional_paths].freeze
146
+ NOT_CONFIGURABLE_WITH_ENV = %w[additional_input_globs watch_additional_paths].freeze
142
147
 
143
148
  # Internal: Configuration options that can be provided as env vars.
144
149
  CONFIGURABLE_WITH_ENV = (DEFAULT_CONFIG.keys + %w[mode root] - NOT_CONFIGURABLE_WITH_ENV).freeze
@@ -52,13 +52,12 @@ private
52
52
  path = env['PATH_INFO']
53
53
  return true if path.start_with?(vite_asset_url_prefix) # Vite asset
54
54
  return true if path.start_with?(VITE_DEPENDENCY_PREFIX) # Packages and imports
55
- return true if vite_entrypoint?(path) # HMR for entrypoint stylesheets and imports does not include the prefix
55
+ return true if file_in_vite_root?(path) # Fallback if Vite can serve the file
56
56
  end
57
57
 
58
- # Internal: We want to avoid checking the filesystem if possible
59
- def vite_entrypoint?(path)
60
- path.include?('.') &&
61
- config.resolved_entrypoints_dir.join(path.start_with?('/') ? path[1..-1] : path).file?
58
+ def file_in_vite_root?(path)
59
+ path.include?('.') && # Check for extension, avoid filesystem if possible.
60
+ config.vite_root_dir.join(path.start_with?('/') ? path[1..-1] : path).file?
62
61
  end
63
62
 
64
63
  def vite_asset_url_prefix
@@ -43,7 +43,7 @@ class ViteRuby::Manifest
43
43
 
44
44
  # Public: The path from where the browser can download the Vite HMR client.
45
45
  def vite_client_src
46
- prefix_vite_asset('@vite/client') if dev_server_running?
46
+ prefix_asset_with_host('@vite/client') if dev_server_running?
47
47
  end
48
48
 
49
49
  # Public: The content of the preamble needed by the React Refresh plugin.
@@ -51,7 +51,7 @@ class ViteRuby::Manifest
51
51
  if dev_server_running?
52
52
  <<~REACT_REFRESH
53
53
  <script type="module">
54
- import RefreshRuntime from '#{ prefix_vite_asset('@react-refresh') }'
54
+ import RefreshRuntime from '#{ prefix_asset_with_host('@react-refresh') }'
55
55
  RefreshRuntime.injectIntoGlobalHook(window)
56
56
  window.$RefreshReg$ = () => {}
57
57
  window.$RefreshSig$ = () => (type) => type
@@ -66,8 +66,8 @@ protected
66
66
  # Internal: Strict version of lookup.
67
67
  #
68
68
  # Returns a relative path for the asset, or raises an error if not found.
69
- def lookup!(*args, **options)
70
- lookup(*args, **options) || missing_entry_error(*args, **options)
69
+ def lookup!(name, **options)
70
+ lookup(name, **options) || missing_entry_error(name, **options)
71
71
  end
72
72
 
73
73
  # Internal: Computes the path for a given Vite asset using manifest.json.
@@ -77,10 +77,10 @@ protected
77
77
  # Example:
78
78
  # manifest.lookup('calendar.js')
79
79
  # => { "file" => "/vite/assets/calendar-1016838bab065ae1e122.js", "imports" => [] }
80
- def lookup(name, type: nil)
80
+ def lookup(name, **options)
81
81
  @build_mutex.synchronize { builder.build } if should_build?
82
82
 
83
- find_manifest_entry(with_file_extension(name, type))
83
+ find_manifest_entry resolve_entry_name(name, **options)
84
84
  end
85
85
 
86
86
  private
@@ -98,9 +98,9 @@ private
98
98
  # Internal: Finds the specified entry in the manifest.
99
99
  def find_manifest_entry(name)
100
100
  if dev_server_running?
101
- { 'file' => prefix_vite_asset(name.to_s) }
101
+ { 'file' => prefix_vite_asset(name) }
102
102
  else
103
- manifest[name.to_s]
103
+ manifest[name]
104
104
  end
105
105
  end
106
106
 
@@ -125,6 +125,12 @@ private
125
125
  File.join("/#{ config.public_output_dir }", path)
126
126
  end
127
127
 
128
+ # Internal: Prefixes an asset with the `asset_host` for tags that do not use
129
+ # the framework tag helpers.
130
+ def prefix_asset_with_host(path)
131
+ File.join(config.asset_host || '/', config.public_output_dir, path)
132
+ end
133
+
128
134
  # Internal: Resolves the paths that reference a manifest entry.
129
135
  def resolve_references(manifest)
130
136
  manifest.each_value do |entry|
@@ -134,12 +140,26 @@ private
134
140
  end
135
141
  end
136
142
 
143
+ # Internal: Resolves the manifest entry name for the specified resource.
144
+ def resolve_entry_name(name, type: nil)
145
+ name = with_file_extension(name.to_s, type)
146
+ name = name[1..-1] if name.start_with?('/')
147
+
148
+ # Prefix scripts and stylesheets with the entrypoints dir.
149
+ if (type || File.dirname(name) == '.') && !name.start_with?(config.entrypoints_dir)
150
+ File.join(config.entrypoints_dir, name)
151
+ else
152
+ name
153
+ end
154
+ end
155
+
137
156
  # Internal: Adds a file extension to the file name, unless it already has one.
138
157
  def with_file_extension(name, entry_type)
139
- return name unless File.extname(name.to_s).empty?
140
-
141
- extension = extension_for_type(entry_type)
142
- extension ? "#{ name }.#{ extension }" : name
158
+ if File.extname(name).empty? && (ext = extension_for_type(entry_type))
159
+ "#{ name }.#{ ext }"
160
+ else
161
+ name
162
+ end
143
163
  end
144
164
 
145
165
  # Internal: Allows to receive :javascript and :stylesheet as :type in helpers.
@@ -153,9 +173,9 @@ private
153
173
  end
154
174
 
155
175
  # Internal: Raises a detailed message when an entry is missing in the manifest.
156
- def missing_entry_error(name, type: nil, **_options)
176
+ def missing_entry_error(name, **options)
157
177
  raise ViteRuby::MissingEntrypointError, OpenStruct.new(
158
- file_name: with_file_extension(name, type),
178
+ file_name: resolve_entry_name(name, **options),
159
179
  last_build: builder.last_build_metadata,
160
180
  manifest: @manifest,
161
181
  config: config,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ViteRuby
4
- VERSION = '1.2.18'
4
+ VERSION = '2.0.0.beta.3'
5
5
  end
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: 1.2.18
4
+ version: 2.0.0.beta.3
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-07-19 00:00:00.000000000 Z
11
+ date: 2021-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-cli
@@ -198,8 +198,8 @@ homepage: https://github.com/ElMassimo/vite_ruby
198
198
  licenses:
199
199
  - MIT
200
200
  metadata:
201
- source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@1.2.18/vite_ruby
202
- changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@1.2.18/vite_ruby/CHANGELOG.md
201
+ source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@2.0.0.beta.3/vite_ruby
202
+ changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@2.0.0.beta.3/vite_ruby/CHANGELOG.md
203
203
  post_install_message:
204
204
  rdoc_options: []
205
205
  require_paths:
@@ -211,9 +211,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
211
211
  version: '2.4'
212
212
  required_rubygems_version: !ruby/object:Gem::Requirement
213
213
  requirements:
214
- - - ">="
214
+ - - ">"
215
215
  - !ruby/object:Gem::Version
216
- version: '0'
216
+ version: 1.3.1
217
217
  requirements: []
218
218
  rubygems_version: 3.1.4
219
219
  signing_key: