@@ -26,7 +26,7 @@ def initialize(importers, load_paths, alert_color:)
26
26
end
27
27
28
28
def register ( importer )
29
- importer = Structifier . to_struct ( importer , :canonicalize , :load , :find_file_url )
29
+ importer = Structifier . to_struct ( importer , :canonicalize , :load , :non_canonical_scheme , : find_file_url)
30
30
31
31
is_importer = importer . respond_to? ( :canonicalize ) && importer . respond_to? ( :load )
32
32
is_file_importer = importer . respond_to? ( :find_file_url )
@@ -39,7 +39,17 @@ def register(importer)
39
39
@importers_by_id [ id ] = importer
40
40
if is_importer
41
41
EmbeddedProtocol ::InboundMessage ::CompileRequest ::Importer . new (
42
- importer_id : id
42
+ importer_id : id ,
43
+ non_canonical_scheme : if importer . respond_to? ( :non_canonical_scheme )
44
+ non_canonical_scheme = importer . non_canonical_scheme
45
+ if non_canonical_scheme . is_a? ( String )
46
+ [ non_canonical_scheme ]
47
+ else
48
+ non_canonical_scheme || [ ]
49
+ end
50
+ else
51
+ [ ]
52
+ end
43
53
)
44
54
else
45
55
EmbeddedProtocol ::InboundMessage ::CompileRequest ::Importer . new (
@@ -50,7 +60,8 @@ def register(importer)
50
60
51
61
def canonicalize ( canonicalize_request )
52
62
importer = @importers_by_id [ canonicalize_request . importer_id ]
53
- url = importer . canonicalize ( canonicalize_request . url , from_import : canonicalize_request . from_import ) &.to_s
63
+ url = importer . canonicalize ( canonicalize_request . url ,
64
+ Protofier . from_proto_canonicalize_context ( canonicalize_request ) ) &.to_s
54
65
55
66
EmbeddedProtocol ::InboundMessage ::CanonicalizeResponse . new (
56
67
id : canonicalize_request . id ,
@@ -84,7 +95,8 @@ def import(import_request)
84
95
85
96
def file_import ( file_import_request )
86
97
importer = @importers_by_id [ file_import_request . importer_id ]
87
- file_url = importer . find_file_url ( file_import_request . url , from_import : file_import_request . from_import ) &.to_s
98
+ file_url = importer . find_file_url ( file_import_request . url ,
99
+ Protofier . from_proto_canonicalize_context ( file_import_request ) ) &.to_s
88
100
89
101
EmbeddedProtocol ::InboundMessage ::FileImportResponse . new (
90
102
id : file_import_request . id ,
0 commit comments