summaryrefslogtreecommitdiff
path: root/cli/ops.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2019-06-18 16:23:06 +0200
committerRyan Dahl <ry@tinyclouds.org>2019-06-18 07:23:06 -0700
commit01858f115ae4c051a0beb5c1719c59431562f43e (patch)
treebd74c084216fab2ea7e8ff485cb52fcedb0da0e5 /cli/ops.rs
parented390a51cac08ec238b45c793a5ddd65fcae1b78 (diff)
fix: use Loader::resolve in op_fetch_module_meta_data (#2519)
Diffstat (limited to 'cli/ops.rs')
-rw-r--r--cli/ops.rs18
1 files changed, 3 insertions, 15 deletions
diff --git a/cli/ops.rs b/cli/ops.rs
index 2155dcd5a..a9279f070 100644
--- a/cli/ops.rs
+++ b/cli/ops.rs
@@ -29,6 +29,7 @@ use deno::js_check;
use deno::Buf;
use deno::CoreOp;
use deno::JSError;
+use deno::Loader;
use deno::ModuleSpecifier;
use deno::Op;
use deno::OpResult;
@@ -507,25 +508,12 @@ fn op_fetch_module_meta_data(
let use_cache = !state.flags.reload;
let no_fetch = state.flags.no_fetch;
-
- // TODO(bartlomieju): I feel this is wrong - specifier is only resolved if there's an
- // import map - why it is not always resolved? Eg. "bad-module.ts" will return NotFound
- // error whilst it should return RelativeUrlWithCannotBeABaseBase error
- let resolved_specifier = match &state.import_map {
- Some(import_map) => match import_map.resolve(specifier, referrer) {
- Ok(result) => match result {
- Some(module_specifier) => module_specifier.to_string(),
- None => specifier.to_string(),
- },
- Err(err) => return Err(DenoError::from(err)),
- },
- None => specifier.to_string(),
- };
+ let resolved_specifier = state.resolve(specifier, referrer, false)?;
let fut = state
.dir
.fetch_module_meta_data_async(
- &resolved_specifier,
+ &resolved_specifier.to_string(),
referrer,
use_cache,
no_fetch,