File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ module Importmap
77 class Engine < ::Rails ::Engine
88 config . importmap = ActiveSupport ::OrderedOptions . new
99 config . importmap . sweep_cache = Rails . env . development? || Rails . env . test?
10+ config . importmap . rescuable_asset_errors = [ ]
1011
1112 config . autoload_once_paths = %W( #{ root } /app/helpers )
1213
@@ -49,5 +50,11 @@ class Engine < ::Rails::Engine
4950 helper Importmap ::ImportmapTagsHelper
5051 end
5152 end
53+
54+ initializer 'importmap.rescuable_asset_errors' do |app |
55+ if defined? ( Sprockets ::Rails )
56+ app . config . importmap . rescuable_asset_errors << Sprockets ::Rails ::Helper ::AssetNotFound
57+ end
58+ end
5259 end
5360end
Original file line number Diff line number Diff line change @@ -87,13 +87,21 @@ def clear_cache
8787 @cached_preloaded_module_paths = nil
8888 end
8989
90+ def rescuable_asset_error? ( error )
91+ Rails . application . config . importmap . rescuable_asset_errors . any? { |e | error . is_a? ( e ) }
92+ end
93+
9094 def resolve_asset_paths ( paths , resolver :)
9195 paths . transform_values do |mapping |
9296 begin
9397 resolver . asset_path ( mapping . path )
94- rescue Sprockets ::Rails ::Helper ::AssetNotFound
95- Rails . logger . warn "Importmap skipped missing path: #{ mapping . path } "
96- nil
98+ rescue => e
99+ if rescuable_asset_error? ( e )
100+ Rails . logger . warn "Importmap skipped missing path: #{ mapping . path } "
101+ nil
102+ else
103+ raise e
104+ end
97105 end
98106 end . compact
99107 end
You can’t perform that action at this time.
0 commit comments