vite_rails 3.0.17 → 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: '09ffd4b097008530d82fda12a78c5c8004f022a65e789eac969698d00110b06a'
4
- data.tar.gz: 7310a8678f4772e3b9eab6186033705e1c871e44873e62de2de68a6aa26f2bb9
3
+ metadata.gz: b468faa93a51c963d70a987a45f6dbb605c3854dd9ec188d40f0a93c085508d5
4
+ data.tar.gz: a04b6b5f89227b70c1d82e3a649ee1b6d423beedc1e1408126528962ba2962a0
5
5
  SHA512:
6
- metadata.gz: 7257343e6a237462b31552ef89a72cc77ade0cc639b99ec6d9689fc38ae568e1289882a9e34a092b90d86bfaa0cea03584ee8446f969a32561c62e283533e911
7
- data.tar.gz: 9edaaf096099ef3ccf762661c4cea9de82ccc2b6a5d02b5abb47c32cc1321f7dd973ca9c0d63b6ce54090507f1a9144cf6855dae2b76300062707cb8523a62e5
6
+ metadata.gz: 5d5d14601db1a186747566549bd620c1d6c534fe111a2dd9712694743ae3ba691200c56628f1a9fd08c0edbbce68da81ecd28d7e338b8fac215f2bf4b1c99373
7
+ data.tar.gz: 305be4fa2c036e0b8ef509b38fb50985f7c3a8ff8caedc608b919b436a048ffe1d06c5a136a0183ebd80faf5946882ae0a76814eac809e017477c22f7bcbbe24
data/CHANGELOG.md CHANGED
@@ -1,115 +1,9 @@
1
- ## [3.0.17](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.16...vite_rails@3.0.17) (2023-10-05)
1
+ # [](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.5...vite_rails@) (2022-01-18)
2
2
 
3
3
 
4
4
  ### Features
5
5
 
6
- * 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))
7
-
8
-
9
-
10
- ## [3.0.16](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.15...vite_rails@3.0.16) (2023-09-22)
11
-
12
-
13
- ### Bug Fixes
14
-
15
- * 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))
16
-
17
-
18
-
19
- ## [3.0.15](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.14...vite_rails@3.0.15) (2023-06-19)
20
-
21
-
22
- ### Features
23
-
24
- * 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))
25
- * 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)
26
-
27
-
28
-
29
- ## [3.0.14](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.13...vite_rails@3.0.14) (2023-02-08)
30
-
31
-
32
- ### Features
33
-
34
- * 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))
35
- * make vite_client_tag crossorigin: "anonymous" by default ([404a15a](https://github.com/ElMassimo/vite_ruby/commit/404a15a70c9d4fcd774735045c0d58d3e2aa37f2))
36
-
37
-
38
-
39
- ## [3.0.13](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.12...vite_rails@3.0.13) (2022-11-13)
40
-
41
-
42
- ### Bug Fixes
43
-
44
- * 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))
45
-
46
-
47
-
48
- ## [3.0.12](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.11...vite_rails@3.0.12) (2022-08-12)
49
-
50
-
51
- ### Bug Fixes
52
-
53
- * 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))
54
-
55
-
56
- ### Features
57
-
58
- * allow framework-specific libraries to extend the CLI ([a0ed66f](https://github.com/ElMassimo/vite_ruby/commit/a0ed66fe64fb2549cecc358ccd60c82be44255aa))
59
-
60
-
61
-
62
- ## [3.0.11](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.10...vite_rails@3.0.11) (2022-08-11)
63
-
64
-
65
- ### Bug Fixes
66
-
67
- * 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))
68
-
69
-
70
-
71
- ## [3.0.10](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.9...vite_rails@3.0.10) (2022-06-15)
72
-
73
-
74
- ### Bug Fixes
75
-
76
- * symbol error on rake enhance call ([#218](https://github.com/ElMassimo/vite_ruby/issues/218)) ([5507156](https://github.com/ElMassimo/vite_ruby/commit/550715624ceb39e1ea5e845e73dcaf5557caa66f))
77
-
78
-
79
-
80
- ## [3.0.9](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.8...vite_rails@3.0.9) (2022-04-29)
81
-
82
-
83
- ### Features
84
-
85
- * add vite_asset_url helper ([#208](https://github.com/ElMassimo/vite_ruby/issues/208)) ([d269793](https://github.com/ElMassimo/vite_ruby/commit/d2697934b5a866ea5b14588b650a00dfe88454a3))
86
-
87
-
88
-
89
- ## [3.0.8](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.7...vite_rails@3.0.8) (2022-04-14)
90
-
91
-
92
- ### Bug Fixes
93
-
94
- * 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))
95
-
96
-
97
-
98
- ## [3.0.7](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.6...vite_rails@3.0.7) (2022-03-17)
99
-
100
-
101
- ### Bug Fixes
102
-
103
- * 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))
104
-
105
-
106
-
107
- ## [3.0.6](https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.0.5...vite_rails@3.0.6) (2022-02-04)
108
-
109
-
110
- ### Bug Fixes
111
-
112
- * 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))
113
7
 
114
8
 
115
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,16 +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
- asset_paths = sources.map { |source| path_to_asset(source) }
105
- try(:request).try(
106
- :send_early_hints,
107
- 'Link' => asset_paths.map { |href|
108
- %(<#{ href }>; rel=modulepreload; as=script; crossorigin=#{ crossorigin })
109
- }.join("\n"),
110
- )
111
- asset_paths.map { |href|
112
- tag.link(rel: 'modulepreload', href: href, as: 'script', crossorigin: crossorigin, **options)
113
- }.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)
114
94
  end
115
95
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ViteRails
4
- VERSION = '3.0.17'
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.17
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: 2023-10-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
@@ -34,22 +34,16 @@ dependencies:
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.17/vite_rails
92
- changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_rails@3.0.17/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