diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2022-09-06 12:57:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-06 12:57:28 +0200 |
commit | d20e80fa501ca7530e23e7251749da2f2277e250 (patch) | |
tree | 24508b1f752467301fce13b165fc76eb7387dde5 /cli/proc_state.rs | |
parent | f2448c5de2a2294abea304fe3e239988b2ee5fc7 (diff) |
refactor(npm): reorganize remapping built-in Node modules to remote URLs (#15755)
Changes how built-in Node modules are mapped to polyfills
from "deno_std". Instead of intertwining this logic into Node
resolution logic, we map them to "NodeResolution::BuiltIn"
which are remapped to "deno_std" URLs in ProcState.
Diffstat (limited to 'cli/proc_state.rs')
-rw-r--r-- | cli/proc_state.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cli/proc_state.rs b/cli/proc_state.rs index dc0072c4a..fc349ac25 100644 --- a/cli/proc_state.rs +++ b/cli/proc_state.rs @@ -21,6 +21,7 @@ use crate::http_cache; use crate::lockfile::as_maybe_locker; use crate::lockfile::Lockfile; use crate::node; +use crate::node::NodeResolution; use crate::npm::GlobalNpmPackageResolver; use crate::npm::NpmPackageReference; use crate::npm::NpmPackageResolver; @@ -461,17 +462,19 @@ impl ProcState { fn handle_node_resolve_result( &self, - result: Result<Option<ResolveResponse>, AnyError>, + result: Result<Option<node::NodeResolution>, AnyError>, ) -> Result<ModuleSpecifier, AnyError> { let response = match result? { Some(response) => response, None => bail!("Not found."), }; - if let ResolveResponse::CommonJs(specifier) = &response { + if let NodeResolution::CommonJs(specifier) = &response { // remember that this was a common js resolution self.cjs_resolutions.lock().insert(specifier.clone()); + } else if let NodeResolution::BuiltIn(specifier) = &response { + return node::resolve_builtin_node_module(specifier); } - response.to_result() + Ok(response.into_url()) } pub fn resolve( |