mastodon/lib/premailer_bundled_asset_strategy.rb
Echo f2b85d4696
Webpack to Vite: Utilize Ruby Vite (#34469)
Co-authored-by: Renaud Chaput <renchap@gmail.com>
2025-05-06 22:02:25 +02:00

29 lines
838 B
Ruby

# frozen_string_literal: true
module PremailerBundledAssetStrategy
def load(url)
if ViteRuby.instance.dev_server_running?
# Request from the dev server
return unless url.start_with?("/#{ViteRuby.config.public_output_dir}/")
headers = {}
# Vite dev server wants this header for CSS files, otherwise it will respond with a JS file that inserts the CSS (to support hot reloading)
headers['Accept'] = 'text/css' if url.end_with?('.scss', '.css')
Net::HTTP.get(
URI("#{ViteRuby.config.origin}#{url}"),
headers
).presence
else
path = Rails.public_path.join(url.delete_prefix('/'))
return unless path.exist?
path.read
end
rescue ViteRuby::MissingEntrypointError
# If the path is not in the manifest, ignore it
end
module_function :load
end