vite_ruby 1.2.15 → 1.2.18

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: 2cc7ebe04b31db44eb45cc8c61275d09035b9496e2bb9b818909d101088b304f
4
- data.tar.gz: e5318e9fc71a89e68e707e0edf2a679b31163566f7a61478cf95b18698289b54
3
+ metadata.gz: 9c040d1223758720987dc50a487c8cb2cbf07dba6b9bfb5a8a56b883931615d8
4
+ data.tar.gz: a6d9fcf29261cab2f4411830378e7b9658264450ff45feb736db5858cd8db7be
5
5
  SHA512:
6
- metadata.gz: f187d6b794b600e55ca88d1068900afdddd14652bd2b65661ce0478ed01a296c81348cea83d7a8a049a500107be431d0c6d22c781f9be9062bfe085090295ea9
7
- data.tar.gz: df568548b57a23881f41c54388c41c46cb3da6f174463adc26e82c5998f9f76e552c3dfbd5b361345469b65ef03dbd465ed49297fa1c09c0f0783c16db6a3f1a
6
+ metadata.gz: 13b6146ffcea5681a48c377bdabc798016c95ec595448274eb7deb1d64296244969f47c0f8cd4a5da9cde158dfaca746b07e4dee60feb153809b2b420e62fa6a
7
+ data.tar.gz: 684bf03f8e55ff25def1f3d051a3e2111644bc1b080a1faa2a2dbc0c85a925a771a2a6979e7068d9b35736fa155703ef0f851cb56e477999897e9bd3fd8c8697
data/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## <small>1.2.18 (2021-07-19)</small>
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
+
8
+
9
+
10
+ ## [1.2.17](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.16...vite_ruby@1.2.17) (2021-07-12)
11
+
12
+ * fix: Proxy CSS Modules requests to Vite.js with the correct extension (close #98) ([8976872](https://github.com/ElMassimo/vite_ruby/commit/8976872)), closes [#98](https://github.com/ElMassimo/vite_ruby/issues/98)
13
+
14
+
15
+
16
+ ## [1.2.16](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.15...vite_ruby@1.2.16) (2021-07-07)
17
+
18
+ * feat: Enable usage in engines by using `run` from the current instance ([023a61d](https://github.com/ElMassimo/vite_ruby/commit/023a61d))
19
+
20
+
21
+
1
22
  ## [1.2.15](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.14...vite_ruby@1.2.15) (2021-07-01)
2
23
 
3
24
 
data/lib/vite_ruby.rb CHANGED
@@ -35,19 +35,11 @@ class ViteRuby
35
35
  class << self
36
36
  extend Forwardable
37
37
 
38
- def_delegators :instance, :config, :commands, :run_proxy?
38
+ def_delegators :instance, :config, :commands, :env, :run, :run_proxy?
39
39
  def_delegators :config, :mode
40
40
 
41
41
  def instance
42
- @instance ||= ViteRuby.new
43
- end
44
-
45
- # Public: Additional environment variables to pass to Vite.
46
- #
47
- # Example:
48
- # ViteRuby.env['VITE_RUBY_CONFIG_PATH'] = 'config/alternate_vite.json'
49
- def env
50
- @env ||= load_env_variables
42
+ @instance ||= new
51
43
  end
52
44
 
53
45
  # Internal: Refreshes the manifest.
@@ -60,21 +52,9 @@ class ViteRuby
60
52
  load File.expand_path('tasks/vite.rake', __dir__)
61
53
  end
62
54
 
63
- # Internal: Executes the vite binary.
64
- def run(argv, **options)
65
- ViteRuby::Runner.new(instance).run(argv, **options)
66
- end
67
-
68
- # Internal: Refreshes the config after setting the env vars.
69
- def reload_with(env_vars)
70
- env.update(env_vars)
71
- @instance = nil
72
- config
73
- end
74
-
75
- # Internal: Allows to obtain any env variables for configuration options.
76
- def load_env_variables
77
- ENV.select { |key, _| key.start_with?(ENV_PREFIX) }
55
+ # Internal: Creates a new instance with the specified options.
56
+ def reload_with(**config_options)
57
+ @instance = new(**config_options)
78
58
  end
79
59
 
80
60
  # Internal: Detects if the application has installed a framework-specific
@@ -90,6 +70,10 @@ class ViteRuby
90
70
 
91
71
  attr_writer :logger
92
72
 
73
+ def initialize(**config_options)
74
+ @config_options = config_options
75
+ end
76
+
93
77
  def logger
94
78
  @logger ||= Logger.new($stdout)
95
79
  end
@@ -107,6 +91,14 @@ class ViteRuby
107
91
  @running_at = false
108
92
  end
109
93
 
94
+ # Public: Additional environment variables to pass to Vite.
95
+ #
96
+ # Example:
97
+ # ViteRuby.env['VITE_RUBY_CONFIG_PATH'] = 'config/alternate_vite.json'
98
+ def env
99
+ @env ||= ENV.select { |key, _| key.start_with?(ENV_PREFIX) }
100
+ end
101
+
110
102
  # Public: The proxy for assets should only run in development mode.
111
103
  def run_proxy?
112
104
  config.mode == 'development'
@@ -115,6 +107,11 @@ class ViteRuby
115
107
  false
116
108
  end
117
109
 
110
+ # Internal: Executes the vite binary.
111
+ def run(argv, **options)
112
+ (@runner ||= ViteRuby::Runner.new(self)).run(argv, **options)
113
+ end
114
+
118
115
  # Public: Keeps track of watched files and triggers builds as needed.
119
116
  def builder
120
117
  @builder ||= ViteRuby::Builder.new(self)
@@ -127,7 +124,7 @@ class ViteRuby
127
124
 
128
125
  # Public: Current instance configuration for Vite.
129
126
  def config
130
- @config ||= ViteRuby::Config.resolve_config
127
+ @config ||= ViteRuby::Config.resolve_config(**@config_options)
131
128
  end
132
129
 
133
130
  # Public: Enables looking up assets managed by Vite using name and type.
@@ -33,7 +33,7 @@ private
33
33
 
34
34
  extend Forwardable
35
35
 
36
- def_delegators :@vite_ruby, :config, :logger
36
+ def_delegators :@vite_ruby, :config, :logger, :run
37
37
 
38
38
  # Internal: Reads metadata recorded on the last build, if it exists.
39
39
  def last_build_attrs
@@ -69,7 +69,7 @@ private
69
69
  def build_with_vite(*args)
70
70
  logger.info 'Building with Vite ⚡️'
71
71
 
72
- stdout, stderr, status = ViteRuby.run(['build', *args])
72
+ stdout, stderr, status = run(['build', *args])
73
73
  log_build_result(stdout, stderr.to_s, status)
74
74
 
75
75
  status.success?
@@ -72,7 +72,7 @@ private
72
72
  def create_configuration_files
73
73
  copy_template 'config/vite.config.ts', to: root.join('vite.config.ts')
74
74
  setup_app_files
75
- ViteRuby.reload_with('VITE_RUBY_CONFIG_PATH' => config.config_path)
75
+ ViteRuby.reload_with(config_path: config.config_path)
76
76
  end
77
77
 
78
78
  # Internal: Installs vite and vite-plugin-ruby at the project level.
@@ -33,7 +33,7 @@ private
33
33
  uri = env.fetch('REQUEST_URI') { [env['PATH_INFO'], env['QUERY_STRING']].reject { |str| str.to_s.strip.empty? }.join('?') }
34
34
  .sub(HOST_WITH_PORT_REGEX, '/') # Hanami adds the host and port.
35
35
  .sub('.ts.js', '.ts') # Hanami's javascript helper always adds the extension.
36
- .sub(/(\.(?!min)\w+)\.css$/, '\1') # Rails' stylesheet_link_tag always adds the extension.
36
+ .sub(/(\.(?!min|module)\w+)\.css$/, '\1') # Rails' stylesheet_link_tag always adds the extension.
37
37
  env['PATH_INFO'], env['QUERY_STRING'] = (env['REQUEST_URI'] = uri).split('?')
38
38
  end
39
39
 
@@ -49,12 +49,16 @@ private
49
49
  end
50
50
 
51
51
  def vite_should_handle?(env)
52
- path, query, referer = env['PATH_INFO'], env['QUERY_STRING'], env['HTTP_REFERER']
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 query&.start_with?('t=') # Hot Reload for a stylesheet
56
- return true if query&.start_with?('import&') # Hot Reload for an imported entrypoint
57
- return true if referer && URI.parse(referer).path.start_with?(vite_asset_url_prefix) # Entry imported from another entry.
55
+ return true if vite_entrypoint?(path) # HMR for entrypoint stylesheets and imports does not include the prefix
56
+ end
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
62
  end
59
63
 
60
64
  def vite_asset_url_prefix
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ViteRuby
4
- VERSION = '1.2.15'
4
+ VERSION = '1.2.18'
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.15
4
+ version: 1.2.18
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-01 00:00:00.000000000 Z
11
+ date: 2021-07-19 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.15/vite_ruby
202
- changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@1.2.15/vite_ruby/CHANGELOG.md
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
203
203
  post_install_message:
204
204
  rdoc_options: []
205
205
  require_paths: