28 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module Webpacker::HelperExtensions
 | |
|   def javascript_pack_tag(name, **options)
 | |
|     src, integrity = current_webpacker_instance.manifest.lookup!(name, type: :javascript, with_integrity: true)
 | |
|     javascript_include_tag(src, options.merge(integrity: integrity))
 | |
|   end
 | |
| 
 | |
|   def stylesheet_pack_tag(name, **options)
 | |
|     src, integrity = current_webpacker_instance.manifest.lookup!(name, type: :stylesheet, with_integrity: true)
 | |
|     stylesheet_link_tag(src, options.merge(integrity: integrity))
 | |
|   end
 | |
| 
 | |
|   def preload_pack_asset(name, **options)
 | |
|     src, integrity = current_webpacker_instance.manifest.lookup!(name, with_integrity: true)
 | |
| 
 | |
|     # This attribute will only work if the assets are on a different domain.
 | |
|     # And Webpack will (correctly) only add it in this case, so we need to conditionally set it here
 | |
|     # otherwise the preloaded request and the real request will have different crossorigin values
 | |
|     # and the preloaded file wont be loaded
 | |
|     crossorigin = 'anonymous' if Rails.configuration.action_controller.asset_host.present?
 | |
| 
 | |
|     preload_link_tag(src, options.merge(integrity: integrity, crossorigin: crossorigin))
 | |
|   end
 | |
| end
 | |
| 
 | |
| Webpacker::Helper.prepend(Webpacker::HelperExtensions)
 |