diff options
-rw-r--r-- | cli/ops.rs | 18 | ||||
-rw-r--r-- | tests/error_004_missing_module.ts | 2 | ||||
-rw-r--r-- | tests/error_004_missing_module.ts.out | 2 | ||||
-rw-r--r-- | tests/error_005_missing_dynamic_import.ts | 2 | ||||
-rw-r--r-- | tests/error_005_missing_dynamic_import.ts.out | 2 | ||||
-rw-r--r-- | tests/error_006_import_ext_failure.ts.out | 2 | ||||
-rw-r--r-- | tests/error_011_bad_module_specifier.test | 4 | ||||
-rw-r--r-- | tests/error_011_bad_module_specifier.ts | 2 | ||||
-rw-r--r-- | tests/error_011_bad_module_specifier.ts.out | 11 | ||||
-rw-r--r-- | tests/error_012_bad_dynamic_import_specifier.test | 4 | ||||
-rw-r--r-- | tests/error_012_bad_dynamic_import_specifier.ts | 4 | ||||
-rw-r--r-- | tests/error_012_bad_dynamic_import_specifier.ts.out | 10 |
12 files changed, 43 insertions, 20 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, diff --git a/tests/error_004_missing_module.ts b/tests/error_004_missing_module.ts index e74d6b821..24ae52cf7 100644 --- a/tests/error_004_missing_module.ts +++ b/tests/error_004_missing_module.ts @@ -1,2 +1,2 @@ // eslint-disable-next-line -import * as badModule from "bad-module.ts"; +import * as badModule from "./bad-module.ts"; diff --git a/tests/error_004_missing_module.ts.out b/tests/error_004_missing_module.ts.out index b3a9aa65e..ca43bd5ff 100644 --- a/tests/error_004_missing_module.ts.out +++ b/tests/error_004_missing_module.ts.out @@ -1,4 +1,4 @@ -[WILDCARD]Uncaught NotFound: Cannot resolve module "bad-module.ts" from "[WILDCARD]/tests/error_004_missing_module.ts" +[WILDCARD]Uncaught NotFound: Cannot resolve module "[WILDCARD]/bad-module.ts" from "[WILDCARD]/tests/error_004_missing_module.ts" at DenoError (js/errors.ts:[WILDCARD]) at maybeError (js/errors.ts:[WILDCARD]) at maybeThrowError (js/errors.ts:[WILDCARD]) diff --git a/tests/error_005_missing_dynamic_import.ts b/tests/error_005_missing_dynamic_import.ts index 0420a80bf..4c09feb5f 100644 --- a/tests/error_005_missing_dynamic_import.ts +++ b/tests/error_005_missing_dynamic_import.ts @@ -1,4 +1,4 @@ (async (): Promise<void> => { // eslint-disable-next-line - const badModule = await import("bad-module.ts"); + const badModule = await import("./bad-module.ts"); })(); diff --git a/tests/error_005_missing_dynamic_import.ts.out b/tests/error_005_missing_dynamic_import.ts.out index 78839e8d6..ef4972940 100644 --- a/tests/error_005_missing_dynamic_import.ts.out +++ b/tests/error_005_missing_dynamic_import.ts.out @@ -1,4 +1,4 @@ -[WILDCARD]NotFound: Cannot resolve module "bad-module.ts" from "[WILDCARD]/tests/error_005_missing_dynamic_import.ts" +[WILDCARD]NotFound: Cannot resolve module "[WILDCARD]/bad-module.ts" from "[WILDCARD]/tests/error_005_missing_dynamic_import.ts" at DenoError (js/errors.ts:[WILDCARD]) at maybeError (js/errors.ts:[WILDCARD]) at maybeThrowError (js/errors.ts:[WILDCARD]) diff --git a/tests/error_006_import_ext_failure.ts.out b/tests/error_006_import_ext_failure.ts.out index 8cd05d692..335a7f4a8 100644 --- a/tests/error_006_import_ext_failure.ts.out +++ b/tests/error_006_import_ext_failure.ts.out @@ -1,4 +1,4 @@ -[WILDCARD]Uncaught NotFound: Cannot resolve module "./non-existent" from "[WILDCARD]/tests/error_006_import_ext_failure.ts" +[WILDCARD]Uncaught NotFound: Cannot resolve module "[WILDCARD]/non-existent" from "[WILDCARD]/tests/error_006_import_ext_failure.ts" at DenoError (js/errors.ts:[WILDCARD]) at maybeError (js/errors.ts:[WILDCARD]) at maybeThrowError (js/errors.ts:[WILDCARD]) diff --git a/tests/error_011_bad_module_specifier.test b/tests/error_011_bad_module_specifier.test new file mode 100644 index 000000000..b2e125cfa --- /dev/null +++ b/tests/error_011_bad_module_specifier.test @@ -0,0 +1,4 @@ +args: run --reload tests/error_011_bad_module_specifier.ts +check_stderr: true +exit_code: 1 +output: tests/error_011_bad_module_specifier.ts.out diff --git a/tests/error_011_bad_module_specifier.ts b/tests/error_011_bad_module_specifier.ts new file mode 100644 index 000000000..e74d6b821 --- /dev/null +++ b/tests/error_011_bad_module_specifier.ts @@ -0,0 +1,2 @@ +// eslint-disable-next-line +import * as badModule from "bad-module.ts"; diff --git a/tests/error_011_bad_module_specifier.ts.out b/tests/error_011_bad_module_specifier.ts.out new file mode 100644 index 000000000..ed0052062 --- /dev/null +++ b/tests/error_011_bad_module_specifier.ts.out @@ -0,0 +1,11 @@ +[WILDCARD]Uncaught RelativeUrlWithCannotBeABaseBase: relative URL with a cannot-be-a-base base + at DenoError (js/errors.ts:[WILDCARD]) + at maybeError (js/errors.ts:[WILDCARD]) + at maybeThrowError (js/errors.ts:[WILDCARD]) + at sendSync (js/dispatch.ts:[WILDCARD]) + at fetchModuleMetaData (js/compiler.ts:[WILDCARD]) + at _resolveModule (js/compiler.ts:[WILDCARD]) + at js/compiler.ts:[WILDCARD] + at resolveModuleNames (js/compiler.ts:[WILDCARD]) + at resolveModuleNamesWorker ([WILDCARD]typescript.js:[WILDCARD]) + at resolveModuleNamesReusingOldState ([WILDCARD]typescript.js:[WILDCARD]) diff --git a/tests/error_012_bad_dynamic_import_specifier.test b/tests/error_012_bad_dynamic_import_specifier.test new file mode 100644 index 000000000..d0c25608d --- /dev/null +++ b/tests/error_012_bad_dynamic_import_specifier.test @@ -0,0 +1,4 @@ +args: run --reload tests/error_012_bad_dynamic_import_specifier.ts +check_stderr: true +exit_code: 1 +output: tests/error_012_bad_dynamic_import_specifier.ts.out diff --git a/tests/error_012_bad_dynamic_import_specifier.ts b/tests/error_012_bad_dynamic_import_specifier.ts new file mode 100644 index 000000000..0420a80bf --- /dev/null +++ b/tests/error_012_bad_dynamic_import_specifier.ts @@ -0,0 +1,4 @@ +(async (): Promise<void> => { + // eslint-disable-next-line + const badModule = await import("bad-module.ts"); +})(); diff --git a/tests/error_012_bad_dynamic_import_specifier.ts.out b/tests/error_012_bad_dynamic_import_specifier.ts.out new file mode 100644 index 000000000..cdfc547f9 --- /dev/null +++ b/tests/error_012_bad_dynamic_import_specifier.ts.out @@ -0,0 +1,10 @@ +[WILDCARD]Uncaught RelativeUrlWithCannotBeABaseBase: relative URL with a cannot-be-a-base base + at DenoError (js/errors.ts:[WILDCARD]) + at maybeError (js/errors.ts:[WILDCARD]) + at maybeThrowError (js/errors.ts:[WILDCARD]) + at sendSync (js/dispatch.ts:[WILDCARD]) + at fetchModuleMetaData (js/compiler.ts:[WILDCARD]) + at _resolveModule (js/compiler.ts:[WILDCARD]) + at js/compiler.ts:[WILDCARD] + at resolveModuleNamesWorker ([WILDCARD]) + at resolveModuleNamesReusingOldState ([WILDCARD]typescript.js:[WILDCARD]) |