@@ -47,6 +47,8 @@ use deno::resolver::CliDenoResolverFs;
47
47
use deno:: resolver:: CliNpmReqResolver ;
48
48
use deno:: resolver:: CliResolver ;
49
49
use deno:: resolver:: CliResolverOptions ;
50
+ use deno:: resolver:: CliSloppyImportsResolver ;
51
+ use deno:: resolver:: SloppyImportsCachedFs ;
50
52
use deno:: util:: fs:: canonicalize_path_maybe_not_exists;
51
53
use deno:: DenoOptions ;
52
54
use deno:: PermissionsContainer ;
@@ -115,6 +117,7 @@ pub struct EmitterFactory {
115
117
resolved_npm_rc : Deferred < Arc < ResolvedNpmRc > > ,
116
118
resolver : Deferred < Arc < CliResolver > > ,
117
119
root_permissions_container : Deferred < PermissionsContainer > ,
120
+ sloppy_imports_resolver : Deferred < Option < Arc < CliSloppyImportsResolver > > > ,
118
121
workspace_resolver : Deferred < Arc < WorkspaceResolver > > ,
119
122
120
123
cache_strategy : Option < CacheSetting > ,
@@ -154,6 +157,7 @@ impl EmitterFactory {
154
157
resolved_npm_rc : Default :: default ( ) ,
155
158
resolver : Default :: default ( ) ,
156
159
root_permissions_container : Default :: default ( ) ,
160
+ sloppy_imports_resolver : Default :: default ( ) ,
157
161
workspace_resolver : Default :: default ( ) ,
158
162
159
163
cache_strategy : None ,
@@ -404,7 +408,7 @@ impl EmitterFactory {
404
408
node_resolver : self . node_resolver ( ) . await ?. clone ( ) ,
405
409
npm_req_resolver : self . npm_req_resolver ( ) . await ?. clone ( ) ,
406
410
} ) ,
407
- sloppy_imports_resolver : None ,
411
+ sloppy_imports_resolver : self . sloppy_imports_resolver ( ) ? . cloned ( ) ,
408
412
workspace_resolver : self . workspace_resolver ( ) ?. clone ( ) ,
409
413
is_byonm : options. use_byonm ( ) ,
410
414
maybe_vendor_dir : options. vendor_dir_path ( ) ,
@@ -504,6 +508,21 @@ impl EmitterFactory {
504
508
} )
505
509
}
506
510
511
+ pub fn sloppy_imports_resolver (
512
+ & self ,
513
+ ) -> Result < Option < & Arc < CliSloppyImportsResolver > > , AnyError > {
514
+ self
515
+ . sloppy_imports_resolver
516
+ . get_or_try_init ( || {
517
+ Ok ( self . deno_options ( ) ?. unstable_sloppy_imports ( ) . then ( || {
518
+ Arc :: new ( CliSloppyImportsResolver :: new ( SloppyImportsCachedFs :: new (
519
+ self . fs ( ) . clone ( ) ,
520
+ ) ) )
521
+ } ) )
522
+ } )
523
+ . map ( |maybe| maybe. as_ref ( ) )
524
+ }
525
+
507
526
pub fn workspace_resolver (
508
527
& self ,
509
528
) -> Result < & Arc < WorkspaceResolver > , anyhow:: Error > {
0 commit comments