diff options
Diffstat (limited to 'app/helpers/webpack_helper.rb')
-rw-r--r-- | app/helpers/webpack_helper.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/helpers/webpack_helper.rb b/app/helpers/webpack_helper.rb index 170e3c45a21..0d27e07f172 100644 --- a/app/helpers/webpack_helper.rb +++ b/app/helpers/webpack_helper.rb @@ -1,10 +1,32 @@ # frozen_string_literal: true module WebpackHelper + def prefetch_link_tag(source) + href = asset_path(source) + + link_tag = tag.link(rel: 'prefetch', href: href) + + early_hints_link = "<#{href}>; rel=prefetch" + + request.send_early_hints("Link" => early_hints_link) + + link_tag + end + def webpack_bundle_tag(bundle) javascript_include_tag(*webpack_entrypoint_paths(bundle)) end + def webpack_preload_asset_tag(asset, options = {}) + path = Gitlab::Webpack::Manifest.asset_paths(asset).first + + if options.delete(:prefetch) + prefetch_link_tag(path) + else + preload_link_tag(path, options) + end + end + def webpack_controller_bundle_tags chunks = [] |