mirror of
https://github.com/discourse/discourse.git
synced 2024-12-13 11:53:45 +08:00
7ecaf6295d
In e1d27400f5
we started running the splash-screen JS through terser, which removed the trailing newline from the `sourceMappingURL` line.
Adding a reliable end-to-end test for this isn't possible because our testing environment doesn't use terser.
42 lines
885 B
Ruby
42 lines
885 B
Ruby
# frozen_string_literal: true
|
|
|
|
module SplashScreenHelper
|
|
def self.inline_splash_screen_script
|
|
<<~HTML.html_safe
|
|
<script>#{raw_js}</script>
|
|
HTML
|
|
end
|
|
|
|
def self.fingerprint
|
|
if Rails.env.development?
|
|
calculate_fingerprint
|
|
else
|
|
@fingerprint ||= calculate_fingerprint
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def self.load_js
|
|
File.read("#{Rails.root}/app/assets/javascripts/discourse/dist/assets/splash-screen.js").sub(
|
|
"//# sourceMappingURL=splash-screen.map",
|
|
"",
|
|
)
|
|
rescue Errno::ENOENT
|
|
Rails.logger.error("Unable to load splash screen JS") if Rails.env.production?
|
|
"console.log('Unable to load splash screen JS')"
|
|
end
|
|
|
|
def self.raw_js
|
|
if Rails.env.development?
|
|
load_js
|
|
else
|
|
@loaded_js ||= load_js
|
|
end
|
|
end
|
|
|
|
def self.calculate_fingerprint
|
|
"sha256-#{Digest::SHA256.base64digest(raw_js)}"
|
|
end
|
|
end
|