lib/sewing_kit/webpack/helper.rb in sewing_kit-0.27.3 vs lib/sewing_kit/webpack/helper.rb in sewing_kit-0.28.0
- old
+ new
@@ -6,27 +6,31 @@
module SewingKit
module Webpack
module Helper
include ActionView::Helpers
- class UnknownJavaScriptAssetError < StandardError
+ class UnknownAssetError < StandardError
end
Asset = Struct.new(:path, :integrity)
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
def sewing_kit_assets(entrypoint_name, extension: 'js')
return '' unless entrypoint_name.present?
assets = SewingKit::Webpack::Manifest.asset_dependencies(entrypoint_name)
+
+ raise UnknownAssetError, "#{entrypoint_name} was not found in manifest." if raise_unknown_error? assets
return [] unless assets && assets[extension]
dependencies = assets[extension]
dependencies.unshift(dll_asset) if serve_development_assets? && extension == 'js'
dependencies.map do |raw_asset|
Asset.new(raw_asset['path'], raw_asset['integrity'])
end
end
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
def sewing_kit_link_tag(*assets)
options = assets.extract_options!
tags = assets.uniq.map do |asset|
@@ -70,9 +74,13 @@
end
def serve_development_assets?
return false if ENV['SK_SIMULATE_PRODUCTION'] == '1'
Rails.env.development?
+ end
+
+ def raise_unknown_error?(assets)
+ assets.nil? && serve_development_assets?
end
def dll_asset
Asset.new('/webpack/assets/dll/vendor.js')
end