Module: RailsVite::TagHelper

Defined in:
lib/rails_vite/tag_helper.rb

Constant Summary collapse

CSS_EXTENSIONS =
/\.(?:css|scss|sass|less|styl|pcss)\z/

Instance Method Summary collapse

Instance Method Details

#vite_asset_path(name) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/rails_vite/tag_helper.rb', line 29

def vite_asset_path(name)
  config = RailsVite.config
  resolved = resolve_vite_entry(name, config.source_dir, nil)

  if config.dev_server_running?
    "#{config.dev_server_url}/#{resolved}"
  else
    vite_asset_url(RailsVite.manifest.path_for(resolved))
  end
end

#vite_image_tag(name, **options) ⇒ Object



40
41
42
# File 'lib/rails_vite/tag_helper.rb', line 40

def vite_image_tag(name, **options)
  image_tag(vite_asset_path(name), **options)
end

#vite_javascript_tag(*entries, **options) ⇒ Object



17
18
19
# File 'lib/rails_vite/tag_helper.rb', line 17

def vite_javascript_tag(*entries, **options)
  vite_tags(*entries.map { |e| with_default_ext(e, ".js") }, **options)
end

#vite_stylesheet_tag(*entries, **options) ⇒ Object



21
22
23
# File 'lib/rails_vite/tag_helper.rb', line 21

def vite_stylesheet_tag(*entries, **options)
  vite_tags(*entries.map { |e| with_default_ext(e, ".css") }, **options)
end

#vite_tags(*entries, nonce: nil, **options) ⇒ Object Also known as: vite_tag



5
6
7
8
9
10
11
12
13
14
# File 'lib/rails_vite/tag_helper.rb', line 5

def vite_tags(*entries, nonce: nil, **options)
  config = RailsVite.config
  resolved = entries.map { |e| resolve_vite_entry(e, config.source_dir, config.entrypoints_dir) }

  if config.dev_server_running?
    vite_dev_tags(resolved, config.dev_server_url, nonce: nonce, **options)
  else
    vite_prod_tags(resolved, nonce: nonce, **options)
  end
end

#vite_typescript_tag(*entries, **options) ⇒ Object



25
26
27
# File 'lib/rails_vite/tag_helper.rb', line 25

def vite_typescript_tag(*entries, **options)
  vite_tags(*entries.map { |e| with_default_ext(e, ".ts") }, **options)
end