Skip to content

Commit bf18330

Browse files
authored
refactor: remove bare node builtin resolution from deno graph (#577)
1 parent 37b14a0 commit bf18330

File tree

8 files changed

+16
-300
lines changed

8 files changed

+16
-300
lines changed

lib/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,6 @@ pub async fn js_parse_module(
375375
jsr_url_provider: Default::default(),
376376
maybe_resolver: maybe_resolver.as_ref().map(|r| r as &dyn Resolver),
377377
module_analyzer: Default::default(),
378-
maybe_npm_resolver: None,
379378
})
380379
.await
381380
{

src/graph.rs

Lines changed: 4 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,6 @@ pub enum ModuleLoadError {
274274
Jsr(#[from] JsrLoadError),
275275
#[class(inherit)]
276276
#[error(transparent)]
277-
NodeUnknownBuiltinModule(#[from] UnknownBuiltInNodeModuleError),
278-
#[class(inherit)]
279-
#[error(transparent)]
280277
Npm(#[from] NpmLoadError),
281278
#[class(generic)]
282279
#[error("Too many redirects.")]
@@ -802,7 +799,6 @@ impl Dependency {
802799
specifier: &str,
803800
jsr_url_provider: &dyn JsrUrlProvider,
804801
maybe_resolver: Option<&dyn Resolver>,
805-
maybe_npm_resolver: Option<&dyn NpmResolver>,
806802
) -> Self {
807803
let maybe_code = self
808804
.maybe_code
@@ -814,7 +810,6 @@ impl Dependency {
814810
ResolutionKind::Execution,
815811
jsr_url_provider,
816812
maybe_resolver,
817-
maybe_npm_resolver,
818813
)
819814
})
820815
.unwrap_or_default();
@@ -831,7 +826,6 @@ impl Dependency {
831826
ResolutionKind::Types,
832827
jsr_url_provider,
833828
maybe_resolver,
834-
maybe_npm_resolver,
835829
)
836830
})
837831
.unwrap_or_default();
@@ -858,7 +852,6 @@ impl TypesDependency {
858852
&self,
859853
jsr_url_provider: &dyn JsrUrlProvider,
860854
maybe_resolver: Option<&dyn Resolver>,
861-
maybe_npm_resolver: Option<&dyn NpmResolver>,
862855
) -> Self {
863856
let dependency = self
864857
.dependency
@@ -870,7 +863,6 @@ impl TypesDependency {
870863
ResolutionKind::Types,
871864
jsr_url_provider,
872865
maybe_resolver,
873-
maybe_npm_resolver,
874866
)
875867
})
876868
.unwrap_or_default();
@@ -1245,7 +1237,6 @@ impl GraphImport {
12451237
imports: Vec<String>,
12461238
jsr_url_provider: &dyn JsrUrlProvider,
12471239
maybe_resolver: Option<&dyn Resolver>,
1248-
maybe_npm_resolver: Option<&dyn NpmResolver>,
12491240
) -> Self {
12501241
let dependencies = imports
12511242
.into_iter()
@@ -1261,7 +1252,6 @@ impl GraphImport {
12611252
ResolutionKind::Types,
12621253
jsr_url_provider,
12631254
maybe_resolver,
1264-
maybe_npm_resolver,
12651255
);
12661256
(
12671257
import,
@@ -1296,7 +1286,6 @@ pub struct BuildFastCheckTypeGraphOptions<'a> {
12961286
pub jsr_url_provider: &'a dyn JsrUrlProvider,
12971287
pub es_parser: Option<&'a dyn crate::EsParser>,
12981288
pub resolver: Option<&'a dyn Resolver>,
1299-
pub npm_resolver: Option<&'a dyn NpmResolver>,
13001289
/// Whether to fill workspace members with fast check TypeScript data.
13011290
pub workspace_fast_check: WorkspaceFastCheckOption<'a>,
13021291
}
@@ -1943,7 +1932,6 @@ impl ModuleGraph {
19431932
&NullFileSystem,
19441933
options.jsr_url_provider,
19451934
options.resolver,
1946-
options.npm_resolver,
19471935
);
19481936
FastCheckTypeModuleSlot::Module(Box::new(FastCheckTypeModule {
19491937
dependencies,
@@ -2270,7 +2258,6 @@ fn resolve(
22702258
resolution_kind: ResolutionKind,
22712259
jsr_url_provider: &dyn JsrUrlProvider,
22722260
maybe_resolver: Option<&dyn Resolver>,
2273-
maybe_npm_resolver: Option<&dyn NpmResolver>,
22742261
) -> Resolution {
22752262
let response = if let Some(resolver) = maybe_resolver {
22762263
resolver.resolve(specifier_text, &referrer_range, resolution_kind)
@@ -2295,39 +2282,6 @@ fn resolve(
22952282
}
22962283
}
22972284
}
2298-
if let Some(npm_resolver) = maybe_npm_resolver {
2299-
if npm_resolver.enables_bare_builtin_node_module() {
2300-
use import_map::ImportMapErrorKind;
2301-
use ResolveError::*;
2302-
use SpecifierError::*;
2303-
let res_ref = response.as_ref();
2304-
if matches!(res_ref, Err(Specifier(ImportPrefixMissing { .. })))
2305-
|| matches!(
2306-
res_ref,
2307-
Err(ImportMap(error)) if matches!(
2308-
error.as_kind(),
2309-
ImportMapErrorKind::UnmappedBareSpecifier(_, _)
2310-
)
2311-
)
2312-
{
2313-
if let Ok(specifier) =
2314-
ModuleSpecifier::parse(&format!("node:{}", specifier_text))
2315-
{
2316-
if npm_resolver.resolve_builtin_node_module(&specifier).is_ok() {
2317-
npm_resolver.on_resolve_bare_builtin_node_module(
2318-
specifier_text,
2319-
&referrer_range,
2320-
);
2321-
return Resolution::from_resolve_result(
2322-
Ok(specifier),
2323-
specifier_text,
2324-
referrer_range,
2325-
);
2326-
}
2327-
}
2328-
}
2329-
}
2330-
}
23312285
Resolution::from_resolve_result(response, specifier_text, referrer_range)
23322286
}
23332287

@@ -2594,7 +2548,6 @@ pub(crate) fn parse_module(
25942548
file_system: &FileSystem,
25952549
jsr_url_provider: &dyn JsrUrlProvider,
25962550
maybe_resolver: Option<&dyn Resolver>,
2597-
maybe_npm_resolver: Option<&dyn NpmResolver>,
25982551
options: ParseModuleOptions,
25992552
) -> Module {
26002553
match options.module_source_and_info {
@@ -2622,7 +2575,6 @@ pub(crate) fn parse_module(
26222575
file_system,
26232576
jsr_url_provider,
26242577
maybe_resolver,
2625-
maybe_npm_resolver,
26262578
)),
26272579
ModuleSourceAndInfo::Wasm {
26282580
specifier,
@@ -2638,7 +2590,6 @@ pub(crate) fn parse_module(
26382590
file_system,
26392591
jsr_url_provider,
26402592
maybe_resolver,
2641-
maybe_npm_resolver,
26422593
)),
26432594
}
26442595
}
@@ -2654,7 +2605,6 @@ pub(crate) fn parse_js_module_from_module_info(
26542605
file_system: &FileSystem,
26552606
jsr_url_provider: &dyn JsrUrlProvider,
26562607
maybe_resolver: Option<&dyn Resolver>,
2657-
maybe_npm_resolver: Option<&dyn NpmResolver>,
26582608
) -> JsModule {
26592609
let mut module = JsModule::new(specifier, source);
26602610
module.is_script = module_info.is_script;
@@ -2676,7 +2626,6 @@ pub(crate) fn parse_js_module_from_module_info(
26762626
ResolutionKind::Types,
26772627
jsr_url_provider,
26782628
maybe_resolver,
2679-
maybe_npm_resolver,
26802629
),
26812630
});
26822631
}
@@ -2700,7 +2649,6 @@ pub(crate) fn parse_js_module_from_module_info(
27002649
ResolutionKind::Types,
27012650
jsr_url_provider,
27022651
maybe_resolver,
2703-
maybe_npm_resolver,
27042652
);
27052653
}
27062654
dep.imports.push(Import {
@@ -2730,7 +2678,6 @@ pub(crate) fn parse_js_module_from_module_info(
27302678
ResolutionKind::Types,
27312679
jsr_url_provider,
27322680
maybe_resolver,
2733-
maybe_npm_resolver,
27342681
);
27352682
if is_untyped {
27362683
module.maybe_types_dependency = Some(TypesDependency {
@@ -2816,7 +2763,6 @@ pub(crate) fn parse_js_module_from_module_info(
28162763
ResolutionKind::Execution,
28172764
jsr_url_provider,
28182765
maybe_resolver,
2819-
maybe_npm_resolver,
28202766
);
28212767
}
28222768
if graph_kind.include_types() && dep.maybe_type.is_none() {
@@ -2850,7 +2796,6 @@ pub(crate) fn parse_js_module_from_module_info(
28502796
ResolutionKind::Types,
28512797
jsr_url_provider,
28522798
maybe_resolver,
2853-
maybe_npm_resolver,
28542799
);
28552800
dep.maybe_deno_types_specifier = Some(specifier_text);
28562801
} else {
@@ -2860,7 +2805,6 @@ pub(crate) fn parse_js_module_from_module_info(
28602805
ResolutionKind::Types,
28612806
jsr_url_provider,
28622807
maybe_resolver,
2863-
maybe_npm_resolver,
28642808
);
28652809
if types_resolution.maybe_specifier()
28662810
!= dep.maybe_code.maybe_specifier()
@@ -2901,7 +2845,6 @@ pub(crate) fn parse_js_module_from_module_info(
29012845
ResolutionKind::Types,
29022846
jsr_url_provider,
29032847
maybe_resolver,
2904-
maybe_npm_resolver,
29052848
);
29062849
}
29072850
dep.imports.push(Import {
@@ -2931,7 +2874,6 @@ pub(crate) fn parse_js_module_from_module_info(
29312874
ResolutionKind::Types,
29322875
jsr_url_provider,
29332876
maybe_resolver,
2934-
maybe_npm_resolver,
29352877
),
29362878
});
29372879
}
@@ -2991,7 +2933,6 @@ pub(crate) fn parse_js_module_from_module_info(
29912933
file_system,
29922934
jsr_url_provider,
29932935
maybe_resolver,
2994-
maybe_npm_resolver,
29952936
);
29962937

29972938
// Return the module as a valid module
@@ -3008,7 +2949,6 @@ fn parse_wasm_module_from_module_info(
30082949
file_system: &FileSystem,
30092950
jsr_url_provider: &dyn JsrUrlProvider,
30102951
maybe_resolver: Option<&dyn Resolver>,
3011-
maybe_npm_resolver: Option<&dyn NpmResolver>,
30122952
) -> WasmModule {
30132953
let mut module = WasmModule {
30142954
specifier,
@@ -3026,7 +2966,6 @@ fn parse_wasm_module_from_module_info(
30262966
file_system,
30272967
jsr_url_provider,
30282968
maybe_resolver,
3029-
maybe_npm_resolver,
30302969
);
30312970
module
30322971
}
@@ -3041,7 +2980,6 @@ fn fill_module_dependencies(
30412980
file_system: &FileSystem,
30422981
jsr_url_provider: &dyn JsrUrlProvider,
30432982
maybe_resolver: Option<&dyn Resolver>,
3044-
maybe_npm_resolver: Option<&dyn NpmResolver>,
30452983
) {
30462984
for desc in dependencies {
30472985
let (imports, types_specifier) = match desc {
@@ -3178,7 +3116,6 @@ fn fill_module_dependencies(
31783116
ResolutionKind::Types,
31793117
jsr_url_provider,
31803118
maybe_resolver,
3181-
maybe_npm_resolver,
31823119
);
31833120
}
31843121
}
@@ -3190,7 +3127,6 @@ fn fill_module_dependencies(
31903127
ResolutionKind::Types,
31913128
jsr_url_provider,
31923129
maybe_resolver,
3193-
maybe_npm_resolver,
31943130
);
31953131
}
31963132
} else if dep.maybe_code.is_none() {
@@ -3202,7 +3138,6 @@ fn fill_module_dependencies(
32023138
ResolutionKind::Execution,
32033139
jsr_url_provider,
32043140
maybe_resolver,
3205-
maybe_npm_resolver,
32063141
);
32073142
dep.is_dynamic = import.is_dynamic;
32083143
} else {
@@ -3219,7 +3154,6 @@ fn fill_module_dependencies(
32193154
ResolutionKind::Types,
32203155
jsr_url_provider,
32213156
maybe_resolver,
3222-
maybe_npm_resolver,
32233157
);
32243158
// only bother setting if the resolved specifier
32253159
// does not match the code specifier
@@ -3813,7 +3747,6 @@ impl<'a, 'graph> Builder<'a, 'graph> {
38133747
imports,
38143748
self.jsr_url_provider,
38153749
self.resolver,
3816-
self.npm_resolver,
38173750
);
38183751
for dep in graph_import.dependencies.values() {
38193752
if let Resolution::Ok(resolved) = &dep.maybe_type {
@@ -4682,25 +4615,8 @@ impl<'a, 'graph> Builder<'a, 'graph> {
46824615
NpmLoadError::PackageReqReferenceParse(err).into(),
46834616
))
46844617
}),
4685-
_ => {
4686-
if let Some(npm_resolver) = self.npm_resolver {
4687-
match npm_resolver.resolve_builtin_node_module(specifier) {
4688-
Ok(Some(builtin_module)) => {
4689-
return Ok(LoadSpecifierKind::Node(builtin_module))
4690-
}
4691-
Ok(None) => {}
4692-
Err(err) => {
4693-
return Err(Box::new(ModuleError::LoadingErr(
4694-
specifier.clone(),
4695-
maybe_range.cloned(),
4696-
err.into(),
4697-
)))
4698-
}
4699-
}
4700-
}
4701-
4702-
Ok(LoadSpecifierKind::Url)
4703-
}
4618+
"node" => Ok(LoadSpecifierKind::Node(specifier.path().to_string())),
4619+
_ => Ok(LoadSpecifierKind::Url),
47044620
}
47054621
}
47064622

@@ -5174,7 +5090,6 @@ impl<'a, 'graph> Builder<'a, 'graph> {
51745090
self.file_system,
51755091
self.jsr_url_provider,
51765092
self.resolver,
5177-
self.npm_resolver,
51785093
ParseModuleOptions {
51795094
graph_kind: self.graph.graph_kind,
51805095
module_source_and_info,
@@ -5843,7 +5758,7 @@ mod tests {
58435758
..Default::default()
58445759
};
58455760
let new_dependency =
5846-
dependency.with_new_resolver("./b.ts", Default::default(), None, None);
5761+
dependency.with_new_resolver("./b.ts", Default::default(), None);
58475762
assert_eq!(
58485763
new_dependency,
58495764
Dependency {
@@ -5884,7 +5799,7 @@ mod tests {
58845799
})),
58855800
};
58865801
let new_types_dependency =
5887-
types_dependency.with_new_resolver(Default::default(), None, None);
5802+
types_dependency.with_new_resolver(Default::default(), None);
58885803
assert_eq!(
58895804
new_types_dependency,
58905805
TypesDependency {

0 commit comments

Comments
 (0)