File tree Expand file tree Collapse file tree 4 files changed +21
-1
lines changed Expand file tree Collapse file tree 4 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -141,7 +141,17 @@ def expand_directories_into(paths)
141141 end
142142
143143 def module_name_from ( filename , mapping )
144- [ mapping . under , filename . to_s . remove ( filename . extname ) . remove ( /\/ ?index$/ ) . presence ] . compact . join ( "/" )
144+ # Regex explanation:
145+ # (?:\/|^) # Matches either / OR the start of the string
146+ # index # Matches the word index
147+ # $ # Matches the end of the string
148+ #
149+ # Sample matches
150+ # index
151+ # folder/index
152+ index_regex = /(?:\/ |^)index$/
153+
154+ [ mapping . under , filename . to_s . remove ( filename . extname ) . remove ( index_regex ) . presence ] . compact . join ( "/" )
145155 end
146156
147157 def module_path_from ( filename , mapping )
Original file line number Diff line number Diff line change 1+ console . log ( "Sorry - no imports here!" )
Original file line number Diff line number Diff line change 1+ console . log ( "Sorry, nothing helpful here" )
Original file line number Diff line number Diff line change @@ -44,10 +44,18 @@ def setup
4444 assert_match %r|assets/controllers/index.*\. js| , generate_importmap_json [ "imports" ] [ "controllers" ]
4545 end
4646
47+ test "directory pin mounted under matching subdir doesn't map *_index as root" do
48+ assert_match %r|assets/controllers/special_index.*\. js| , generate_importmap_json [ "imports" ] [ "controllers/special_index" ]
49+ end
50+
4751 test "directory pin mounted under matching subdir maps index as root at second depth" do
4852 assert_match %r|assets/helpers/requests/index.*\. js| , generate_importmap_json [ "imports" ] [ "helpers/requests" ]
4953 end
5054
55+ test "directory pin mounted under matching subdir doesn't map *_index as root at second depth" do
56+ assert_match %r|assets/helpers/requests/special_index.*\. js| , generate_importmap_json [ "imports" ] [ "helpers/requests/special_index" ]
57+ end
58+
5159 test "directory pin under custom asset path" do
5260 assert_match %r|assets/spina/controllers/another_controller-.*\. js| , generate_importmap_json [ "imports" ] [ "controllers/spina/another_controller" ]
5361 assert_match %r|assets/spina/controllers/deeper/again_controller-.*\. js| , generate_importmap_json [ "imports" ] [ "controllers/spina/deeper/again_controller" ]
You can’t perform that action at this time.
0 commit comments