vite_rails 3.0.19 → 4.0.0.alpha1

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: bec6203fd13439bda514b7bc060fa686a092d5abe246c0c7e3bc9bb94d57f3be
4
- data.tar.gz: 5528b478eeaf0f21630f0c546bd624879520d36ac50dd03414da68da06125998
3
+ metadata.gz: b468faa93a51c963d70a987a45f6dbb605c3854dd9ec188d40f0a93c085508d5
4
+ data.tar.gz: a04b6b5f89227b70c1d82e3a649ee1b6d423beedc1e1408126528962ba2962a0
5
5
  SHA512:
6
- metadata.gz: ba27baf7621e86dc14fafd03b965e8f24c7aade5763ce68e94a044e93c047716cf674e2c738047e4ed17d961898e16571c80a568435a24b8c299509592d1630c
7
- data.tar.gz: d9918d6bc2f636882ac336ea29bcc66e603f654ddcc1002bb53b59026c6b066684b01b19c14ac5e957fc861162851119e05c5ff62d1e0ec093b84e907bc0c9f1
6
+ metadata.gz: 5d5d14601db1a186747566549bd620c1d6c534fe111a2dd9712694743ae3ba691200c56628f1a9fd08c0edbbce68da81ecd28d7e338b8fac215f2bf4b1c99373
7
+ data.tar.gz: 305be4fa2c036e0b8ef509b38fb50985f7c3a8ff8caedc608b919b436a048ffe1d06c5a136a0183ebd80faf5946882ae0a76814eac809e017477c22f7bcbbe24
data/CHANGELOG.md CHANGED
@@ -1,128 +1,9 @@
1
- ## [3.0.19](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.18...vite_rails@3.0.19) (2024-11-05)
2
-
3
-
4
- ### Bug Fixes
5
-
6
- * respect host and protocol options in vite_preload_tag ([#413](https://github.com/ElMassimo/vite_ruby/issues/413)) ([bcd8151](https://github.com/ElMassimo/vite_ruby/commit/bcd8151e77e90b5c219650db604ccf6bb6617720))
7
-
8
-
9
-
10
- ## [3.0.18](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.17...vite_rails@3.0.18) (2024-10-21)
11
-
12
-
13
-
14
- ## [3.0.17](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.16...vite_rails@3.0.17) (2023-10-05)
15
-
16
-
17
- ### Features
18
-
19
- * add vite_picture_tag for Rails 7.1 ([#409](https://github.com/ElMassimo/vite_ruby/issues/409)) ([4e3762a](https://github.com/ElMassimo/vite_ruby/commit/4e3762a978b7879206dbc48137ba525d0d0ad971))
20
-
21
-
22
-
23
- ## [3.0.16](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.15...vite_rails@3.0.16) (2023-09-22)
24
-
25
-
26
- ### Bug Fixes
27
-
28
- * emit a single early hint per entrypoint in `vite_preload_tag` ([#402](https://github.com/ElMassimo/vite_ruby/issues/402)) ([3f9a60b](https://github.com/ElMassimo/vite_ruby/commit/3f9a60b4bb28858b8460b5fc302ad352a03ba002))
29
-
30
-
31
-
32
- ## [3.0.15](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.14...vite_rails@3.0.15) (2023-06-19)
33
-
34
-
35
- ### Features
36
-
37
- * add nonce by default to react refresh tag (close [#249](https://github.com/ElMassimo/vite_ruby/issues/249)) ([a31f0a9](https://github.com/ElMassimo/vite_ruby/commit/a31f0a97588568a964b52005beee63217c7bcfa9))
38
- * Use javascript_tag helper for vite_react_refresh_tag ([#372](https://github.com/ElMassimo/vite_ruby/issues/372)) ([238c6bd](https://github.com/ElMassimo/vite_ruby/commit/238c6bd211c0fafaa6170f0bdd631a0f6e41d992)), closes [#249](https://github.com/ElMassimo/vite_ruby/issues/249)
39
-
40
-
41
-
42
- ## [3.0.14](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.13...vite_rails@3.0.14) (2023-02-08)
1
+ # [](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.5...vite_rails@) (2022-01-18)
43
2
 
44
3
 
45
4
  ### Features
46
5
 
47
- * allow javascript_include_tag options to vite_client_tag ([#337](https://github.com/ElMassimo/vite_ruby/issues/337)) ([417bcf3](https://github.com/ElMassimo/vite_ruby/commit/417bcf38366dd26901eb87cedd80d01118d7936f))
48
- * make vite_client_tag crossorigin: "anonymous" by default ([404a15a](https://github.com/ElMassimo/vite_ruby/commit/404a15a70c9d4fcd774735045c0d58d3e2aa37f2))
49
-
50
-
51
-
52
- ## [3.0.13](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.12...vite_rails@3.0.13) (2022-11-13)
53
-
54
-
55
- ### Bug Fixes
56
-
57
- * avoid removing double extension for non-preprocessor assets ([#301](https://github.com/ElMassimo/vite_ruby/issues/301)) ([2024f62](https://github.com/ElMassimo/vite_ruby/commit/2024f62af917cabcb817c32a5fbbe709d477c19f))
58
-
59
-
60
-
61
- ## [3.0.12](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.11...vite_rails@3.0.12) (2022-08-12)
62
-
63
-
64
- ### Bug Fixes
65
-
66
- * ensure rails app is initialized before inferring config ([#240](https://github.com/ElMassimo/vite_ruby/issues/240)) ([3ddc2bc](https://github.com/ElMassimo/vite_ruby/commit/3ddc2bc7873f06b6dd8e58e7c6b4e8a7fd8833f1))
67
-
68
-
69
- ### Features
70
-
71
- * allow framework-specific libraries to extend the CLI ([a0ed66f](https://github.com/ElMassimo/vite_ruby/commit/a0ed66fe64fb2549cecc358ccd60c82be44255aa))
72
-
73
-
74
-
75
- ## [3.0.11](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.10...vite_rails@3.0.11) (2022-08-11)
76
-
77
-
78
- ### Bug Fixes
79
-
80
- * use javascript_include_tag in vite_client_tag ([#238](https://github.com/ElMassimo/vite_ruby/issues/238)) ([3d8b366](https://github.com/ElMassimo/vite_ruby/commit/3d8b3668b2f43dacbaf09127fa67a27767e03ffe))
81
-
82
-
83
-
84
- ## [3.0.10](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.9...vite_rails@3.0.10) (2022-06-15)
85
-
86
-
87
- ### Bug Fixes
88
-
89
- * symbol error on rake enhance call ([#218](https://github.com/ElMassimo/vite_ruby/issues/218)) ([5507156](https://github.com/ElMassimo/vite_ruby/commit/550715624ceb39e1ea5e845e73dcaf5557caa66f))
90
-
91
-
92
-
93
- ## [3.0.9](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.8...vite_rails@3.0.9) (2022-04-29)
94
-
95
-
96
- ### Features
97
-
98
- * add vite_asset_url helper ([#208](https://github.com/ElMassimo/vite_ruby/issues/208)) ([d269793](https://github.com/ElMassimo/vite_ruby/commit/d2697934b5a866ea5b14588b650a00dfe88454a3))
99
-
100
-
101
-
102
- ## [3.0.8](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.7...vite_rails@3.0.8) (2022-04-14)
103
-
104
-
105
- ### Bug Fixes
106
-
107
- * prevent error when using a proc in asset_host (close [#202](https://github.com/ElMassimo/vite_ruby/issues/202)) ([#203](https://github.com/ElMassimo/vite_ruby/issues/203)) ([cb23a81](https://github.com/ElMassimo/vite_ruby/commit/cb23a81037651ac01d993935f68cc526ec2c844d))
108
-
109
-
110
-
111
- ## [3.0.7](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.6...vite_rails@3.0.7) (2022-03-17)
112
-
113
-
114
- ### Bug Fixes
115
-
116
- * load rails environment before rake tasks (close [#193](https://github.com/ElMassimo/vite_ruby/issues/193)) ([72afbc7](https://github.com/ElMassimo/vite_ruby/commit/72afbc7ab5ca33833e9330954499bcf460fd7669))
117
-
118
-
119
-
120
- ## [3.0.6](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.5...vite_rails@3.0.6) (2022-02-04)
121
-
122
-
123
- ### Bug Fixes
124
-
125
- * don't add crossorigin to included stylesheet tags (close [#189](https://github.com/ElMassimo/vite_ruby/issues/189)) ([#190](https://github.com/ElMassimo/vite_ruby/issues/190)) ([575c731](https://github.com/ElMassimo/vite_ruby/commit/575c73192fb485e8844f67b821c856d1a09db8f5))
6
+ * **experimental:** add support for Subresource Integrity via vite-plugin-manifest-sri ([0b3142c](https://github.com/ElMassimo/vite_ruby/commit/0b3142cd9d569a5f56821f53cdade337779bb0c1))
126
7
 
127
8
 
128
9
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <h1 align="center">
2
2
  <a href="https://vite-ruby.netlify.app/">
3
- <img src="https://raw.githubusercontent.com/ElMassimo/vite_ruby/main/logo.svg" width="120px"/>
3
+ <img src="https://raw.githubusercontent.com/ElMassimo/vite_ruby/main/docs/public/logo.svg" width="120px"/>
4
4
  </a>
5
5
 
6
6
  <br>
data/lib/tasks/vite.rake CHANGED
@@ -2,4 +2,3 @@
2
2
 
3
3
  require 'vite_ruby'
4
4
  ViteRuby.install_tasks
5
- Rake::Task['vite:verify_install'].enhance([:environment]) if Gem.loaded_specs['rails']
@@ -1,14 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ViteRails::Config
4
- private
5
-
6
4
  # Override: Default values for a Rails application.
7
5
  def config_defaults
8
6
  require 'rails'
9
- asset_host = Rails.application&.config&.action_controller&.asset_host
10
7
  super(
11
- asset_host: asset_host.is_a?(Proc) ? nil : asset_host,
8
+ asset_host: Rails.application&.config&.action_controller&.asset_host,
12
9
  mode: Rails.env.to_s,
13
10
  root: Rails.root || Dir.pwd,
14
11
  )
@@ -2,26 +2,9 @@
2
2
 
3
3
  require 'vite_rails'
4
4
 
5
- module ViteRails::CLI
6
- end
7
-
8
- module ViteRails::CLI::Build
9
- def call(**options)
10
- ensure_rails_init
11
- super
12
- end
13
-
14
- # Internal: Attempts to initialize the Rails application.
15
- def ensure_rails_init
16
- require File.expand_path('config/environment', Dir.pwd)
17
- rescue StandardError, LoadError => error
18
- $stderr << "Unable to initialize Rails application before Vite build:\n\n\t#{ error.message }\n\n"
19
- end
20
- end
21
-
22
5
  # Internal: Extends the base installation script from Vite Ruby to work for a
23
6
  # typical Rails app.
24
- module ViteRails::CLI::Install
7
+ module ViteRails::Installation
25
8
  RAILS_TEMPLATES = Pathname.new(File.expand_path('../../templates', __dir__))
26
9
 
27
10
  # Override: Setup a typical apps/web Hanami app to use Vite.
@@ -80,5 +63,4 @@ module ViteRails::CLI::Install
80
63
  end
81
64
  end
82
65
 
83
- ViteRuby::CLI::Build.prepend(ViteRails::CLI::Build)
84
- ViteRuby::CLI::Install.prepend(ViteRails::CLI::Install)
66
+ ViteRuby::CLI::Install.prepend(ViteRails::Installation)
@@ -3,19 +3,15 @@
3
3
  # Public: Allows to render HTML tags for scripts and styles processed by Vite.
4
4
  module ViteRails::TagHelpers
5
5
  # Public: Renders a script tag for vite/client to enable HMR in development.
6
- def vite_client_tag(crossorigin: 'anonymous', **options)
6
+ def vite_client_tag
7
7
  return unless src = vite_manifest.vite_client_src
8
8
 
9
- javascript_include_tag(src, type: 'module', extname: false, crossorigin: crossorigin, **options)
9
+ tag.script(src: src, type: 'module')
10
10
  end
11
11
 
12
12
  # Public: Renders a script tag to enable HMR with React Refresh.
13
- def vite_react_refresh_tag(**options)
14
- return unless react_preamble_code = vite_manifest.react_preamble_code
15
-
16
- options[:nonce] = true if Rails::VERSION::MAJOR >= 6 && !options.key?(:nonce)
17
-
18
- javascript_tag(react_preamble_code.html_safe, type: :module, **options)
13
+ def vite_react_refresh_tag
14
+ vite_manifest.react_refresh_preamble&.html_safe
19
15
  end
20
16
 
21
17
  # Public: Resolves the path for the specified Vite asset.
@@ -26,30 +22,30 @@ module ViteRails::TagHelpers
26
22
  path_to_asset vite_manifest.path_for(name, **options)
27
23
  end
28
24
 
29
- # Public: Resolves the url for the specified Vite asset.
30
- #
31
- # Example:
32
- # <%= vite_asset_url 'calendar.css' %> # => "https://example.com/vite/assets/calendar-1016838bab065ae1e122.css"
33
- def vite_asset_url(name, **options)
34
- url_to_asset vite_manifest.path_for(name, **options)
35
- end
36
-
37
25
  # Public: Renders a <script> tag for the specified Vite entrypoints.
38
26
  def vite_javascript_tag(*names,
39
27
  type: 'module',
40
28
  asset_type: :javascript,
29
+ integrity: false,
41
30
  skip_preload_tags: false,
42
31
  skip_style_tags: false,
43
32
  crossorigin: 'anonymous',
44
33
  media: 'screen',
45
34
  **options)
46
35
  entries = vite_manifest.resolve_entries(*names, type: asset_type)
47
- tags = javascript_include_tag(*entries.fetch(:scripts), crossorigin: crossorigin, type: type, extname: false, **options)
48
- tags << vite_preload_tag(*entries.fetch(:imports), crossorigin: crossorigin, **options) unless skip_preload_tags
36
+ tags = ''.html_safe
37
+
38
+ entries.fetch(:main).each do |src, attrs|
39
+ tags << javascript_include_tag(src, crossorigin: crossorigin, type: type, extname: false, **attrs, **options)
40
+ end
49
41
 
50
- options[:extname] = false if Rails::VERSION::MAJOR >= 7
42
+ unless skip_preload_tags
43
+ entries.fetch(:imports).each do |href, attrs|
44
+ tags << vite_preload_tag(href, crossorigin: crossorigin, **attrs, **options)
45
+ end
46
+ end
51
47
 
52
- tags << stylesheet_link_tag(*entries.fetch(:stylesheets), media: media, **options) unless skip_style_tags
48
+ tags << stylesheet_link_tag(*entries.fetch(:stylesheets), media: media, crossorigin: crossorigin, **options) unless skip_style_tags
53
49
 
54
50
  tags
55
51
  end
@@ -60,12 +56,12 @@ module ViteRails::TagHelpers
60
56
  end
61
57
 
62
58
  # Public: Renders a <link> tag for the specified Vite entrypoints.
63
- def vite_stylesheet_tag(*names, **options)
64
- style_paths = names.map { |name| vite_asset_path(name, type: :stylesheet) }
65
-
66
- options[:extname] = false if Rails::VERSION::MAJOR >= 7
67
-
68
- stylesheet_link_tag(*style_paths, **options)
59
+ def vite_stylesheet_tag(*names, integrity: false, **options)
60
+ ''.html_safe.tap do |tags|
61
+ vite_manifest.resolve_entries(*names, type: :stylesheet).fetch(:main).each do |href, attrs|
62
+ tags << stylesheet_link_tag(href, **attrs, **options)
63
+ end
64
+ end
69
65
  end
70
66
 
71
67
  # Public: Renders an <img> tag for the specified Vite asset.
@@ -79,19 +75,6 @@ module ViteRails::TagHelpers
79
75
  image_tag(vite_asset_path(name), options)
80
76
  end
81
77
 
82
- # Public: Renders a <picture> tag with one or more Vite asset sources.
83
- def vite_picture_tag(*sources, &block)
84
- unless Rails.gem_version >= Gem::Version.new('7.1.0')
85
- raise NotImplementedError, '`vite_picture_tag` is only available for Rails 7.1 or above.'
86
- end
87
-
88
- sources.flatten!
89
- options = sources.extract_options!
90
-
91
- vite_sources = sources.map { |src| vite_asset_path(src) }
92
- picture_tag(*vite_sources, options, &block)
93
- end
94
-
95
78
  private
96
79
 
97
80
  # Internal: Returns the current manifest loaded by Vite Ruby.
@@ -100,17 +83,13 @@ private
100
83
  end
101
84
 
102
85
  # Internal: Renders a modulepreload link tag.
103
- def vite_preload_tag(*sources, crossorigin:, **options)
104
- url_options = options.extract!(:host, :protocol)
105
- asset_paths = sources.map { |source| path_to_asset(source, **url_options) }
106
- try(:request).try(
107
- :send_early_hints,
108
- 'Link' => asset_paths.map { |href|
109
- %(<#{ href }>; rel=modulepreload; as=script; crossorigin=#{ crossorigin })
110
- }.join("\n"),
111
- )
112
- asset_paths.map { |href|
113
- tag.link(rel: 'modulepreload', href: href, as: 'script', crossorigin: crossorigin, **options)
114
- }.join("\n").html_safe
86
+ def vite_preload_tag(source, crossorigin:, **options)
87
+ href = path_to_asset(source)
88
+ try(:request).try(:send_early_hints, 'Link' => %(<#{ href }>; rel=modulepreload; as=script; crossorigin=#{ crossorigin }).tap { |hint|
89
+ if integrity = options[:integrity]
90
+ hint << "; integrity: #{ integrity }"
91
+ end
92
+ })
93
+ tag.link(rel: 'modulepreload', href: href, as: 'script', type: 'module', crossorigin: crossorigin, **options)
115
94
  end
116
95
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ViteRails
4
- VERSION = '3.0.19'
4
+ VERSION = '4.0.0.alpha1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vite_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.19
4
+ version: 4.0.0.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Máximo Mussini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-05 00:00:00.000000000 Z
11
+ date: 2022-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5.1'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '9'
22
+ version: '8'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,27 +29,21 @@ dependencies:
29
29
  version: '5.1'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '9'
32
+ version: '8'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: vite_ruby
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: 3.2.2
40
37
  - - "~>"
41
38
  - !ruby/object:Gem::Version
42
- version: '3.0'
39
+ version: 4.0.0.alpha1
43
40
  type: :runtime
44
41
  prerelease: false
45
42
  version_requirements: !ruby/object:Gem::Requirement
46
43
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 3.2.2
50
44
  - - "~>"
51
45
  - !ruby/object:Gem::Version
52
- version: '3.0'
46
+ version: 4.0.0.alpha1
53
47
  - !ruby/object:Gem::Dependency
54
48
  name: spring
55
49
  requirement: !ruby/object:Gem::Requirement
@@ -76,9 +70,9 @@ files:
76
70
  - README.md
77
71
  - lib/tasks/vite.rake
78
72
  - lib/vite_rails.rb
79
- - lib/vite_rails/cli.rb
80
73
  - lib/vite_rails/config.rb
81
74
  - lib/vite_rails/engine.rb
75
+ - lib/vite_rails/installation.rb
82
76
  - lib/vite_rails/tag_helpers.rb
83
77
  - lib/vite_rails/version.rb
84
78
  - templates/Procfile.dev
@@ -88,8 +82,8 @@ homepage: https://github.com/ElMassimo/vite_ruby
88
82
  licenses:
89
83
  - MIT
90
84
  metadata:
91
- source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_rails@3.0.19/vite_rails
92
- changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_rails@3.0.19/vite_rails/CHANGELOG.md
85
+ source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_rails@4.0.0.alpha1/vite_rails
86
+ changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_rails@4.0.0.alpha1/vite_rails/CHANGELOG.md
93
87
  post_install_message:
94
88
  rdoc_options: []
95
89
  require_paths:
@@ -101,11 +95,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
101
95
  version: '2.5'
102
96
  required_rubygems_version: !ruby/object:Gem::Requirement
103
97
  requirements:
104
- - - ">="
98
+ - - ">"
105
99
  - !ruby/object:Gem::Version
106
- version: '0'
100
+ version: 1.3.1
107
101
  requirements: []
108
- rubygems_version: 3.3.7
102
+ rubygems_version: 3.2.32
109
103
  signing_key:
110
104
  specification_version: 4
111
105
  summary: Use Vite in Rails and bring joy to your JavaScript experience