You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
1.2 KiB
27 lines
1.2 KiB
# 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)
|
|
|