diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-05-05 23:13:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-05 23:13:04 +0200 |
commit | 9cd7d598405f8bf6600775827f870848fd3e120a (patch) | |
tree | b28f5c65b1d8d5d7c3a68c09d384171dab097881 | |
parent | 5875bb9c0d5949682191e4b2592433e975abce4d (diff) |
fix(cli): fix paths in internal stack traces (#5093)
This commit updates "deno_typescript" crate to properly map
bundle entrypoint file to internal specifier.
All import specifiers were remapped from "file:///a/b/c.ts" to
"$deno$/a/b/c.ts", but that was not the case for entrypoint file
"main.ts" and "compiler.ts".
Because of that internal stack traces were inconsistent; showing
"file:///some/random/path/on/ci/machine.ts" URL in frames that
originate from "main.ts" or "compiler.ts" and "$deno$/file.ts"
for all other imports.
-rw-r--r-- | cli/tests/020_json_modules.ts.out | 4 | ||||
-rw-r--r-- | cli/tests/error_004_missing_module.ts.out | 8 | ||||
-rw-r--r-- | cli/tests/error_005_missing_dynamic_import.ts.out | 8 | ||||
-rw-r--r-- | cli/tests/error_006_import_ext_failure.ts.out | 8 | ||||
-rw-r--r-- | cli/tests/error_011_bad_module_specifier.ts.out | 14 | ||||
-rw-r--r-- | cli/tests/error_012_bad_dynamic_import_specifier.ts.out | 14 | ||||
-rw-r--r-- | cli/tests/error_local_static_import_from_remote.ts.out | 4 | ||||
-rw-r--r-- | cli/tests/error_type_definitions.ts.out | 18 | ||||
-rw-r--r-- | deno_typescript/compiler_main.js | 17 |
9 files changed, 53 insertions, 42 deletions
diff --git a/cli/tests/020_json_modules.ts.out b/cli/tests/020_json_modules.ts.out index 02106dafc..cb923561b 100644 --- a/cli/tests/020_json_modules.ts.out +++ b/cli/tests/020_json_modules.ts.out @@ -4,6 +4,6 @@ error: Uncaught TypeError: Cannot resolve extension for "[WILDCARD]config.json" at new SourceFile ($deno$/compiler/sourcefile.ts:[WILDCARD]) at processImports ($deno$/compiler/imports.ts:[WILDCARD]) at async Object.processImports ($deno$/compiler/imports.ts:[WILDCARD]) - at async compile ([WILDCARD]compiler.ts:[WILDCARD]) - at async tsCompilerOnMessage ([WILDCARD]compiler.ts:[WILDCARD]) + at async compile ($deno$/compiler.ts:[WILDCARD]) + at async tsCompilerOnMessage ($deno$/compiler.ts:[WILDCARD]) at async workerMessageRecvCallback ($deno$/runtime_worker.ts:[WILDCARD]) diff --git a/cli/tests/error_004_missing_module.ts.out b/cli/tests/error_004_missing_module.ts.out index 87db14026..1c77c0626 100644 --- a/cli/tests/error_004_missing_module.ts.out +++ b/cli/tests/error_004_missing_module.ts.out @@ -1,8 +1,8 @@ [WILDCARD]error: Uncaught NotFound: Cannot resolve module "[WILDCARD]/bad-module.ts" from "[WILDCARD]/error_004_missing_module.ts" at unwrapResponse ([WILDCARD]dispatch_json.ts:[WILDCARD]) at Object.sendAsync ([WILDCARD]dispatch_json.ts:[WILDCARD]) - at async processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at async Object.processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at async compile ([WILDCARD]compiler.ts:[WILDCARD]) - at async tsCompilerOnMessage ([WILDCARD]compiler.ts:[WILDCARD]) + at async processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at async Object.processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at async compile ($deno$/compiler.ts:[WILDCARD]) + at async tsCompilerOnMessage ($deno$/compiler.ts:[WILDCARD]) at async workerMessageRecvCallback ([WILDCARD]runtime_worker.ts:[WILDCARD]) diff --git a/cli/tests/error_005_missing_dynamic_import.ts.out b/cli/tests/error_005_missing_dynamic_import.ts.out index 0ec1dcb97..b05038a86 100644 --- a/cli/tests/error_005_missing_dynamic_import.ts.out +++ b/cli/tests/error_005_missing_dynamic_import.ts.out @@ -1,8 +1,8 @@ [WILDCARD]error: Uncaught NotFound: Cannot resolve module "[WILDCARD]/bad-module.ts" from "[WILDCARD]/error_005_missing_dynamic_import.ts" at unwrapResponse ([WILDCARD]dispatch_json.ts:[WILDCARD]) at Object.sendAsync ([WILDCARD]dispatch_json.ts:[WILDCARD]) - at async processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at async Object.processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at async compile ([WILDCARD]compiler.ts:[WILDCARD]) - at async tsCompilerOnMessage ([WILDCARD]compiler.ts:[WILDCARD]) + at async processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at async Object.processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at async compile ($deno$/compiler.ts:[WILDCARD]) + at async tsCompilerOnMessage ($deno$/compiler.ts:[WILDCARD]) at async workerMessageRecvCallback ([WILDCARD]runtime_worker.ts:[WILDCARD]) diff --git a/cli/tests/error_006_import_ext_failure.ts.out b/cli/tests/error_006_import_ext_failure.ts.out index 2cac6c76a..25e772a05 100644 --- a/cli/tests/error_006_import_ext_failure.ts.out +++ b/cli/tests/error_006_import_ext_failure.ts.out @@ -1,8 +1,8 @@ [WILDCARD]error: Uncaught NotFound: Cannot resolve module "[WILDCARD]/non-existent" from "[WILDCARD]/error_006_import_ext_failure.ts" at unwrapResponse ([WILDCARD]dispatch_json.ts:[WILDCARD]) at Object.sendAsync ([WILDCARD]dispatch_json.ts:[WILDCARD]) - at async processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at async Object.processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at async compile ([WILDCARD]compiler.ts:[WILDCARD]) - at async tsCompilerOnMessage ([WILDCARD]compiler.ts:[WILDCARD]) + at async processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at async Object.processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at async compile ($deno$/compiler.ts:[WILDCARD]) + at async tsCompilerOnMessage ($deno$/compiler.ts:[WILDCARD]) at async workerMessageRecvCallback ([WILDCARD]runtime_worker.ts:[WILDCARD]) diff --git a/cli/tests/error_011_bad_module_specifier.ts.out b/cli/tests/error_011_bad_module_specifier.ts.out index 23421b135..984a1e4af 100644 --- a/cli/tests/error_011_bad_module_specifier.ts.out +++ b/cli/tests/error_011_bad_module_specifier.ts.out @@ -1,9 +1,9 @@ [WILDCARD]error: Uncaught URIError: relative import path "bad-module.ts" not prefixed with / or ./ or ../ Imported from "[WILDCARD]/error_011_bad_module_specifier.ts" - at unwrapResponse ([WILDCARD]ops/dispatch_json.ts:[WILDCARD]) - at Object.sendSync ([WILDCARD]ops/dispatch_json.ts:[WILDCARD]) - at resolveModules ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at Object.processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at async compile ([WILDCARD]compiler.ts:[WILDCARD]) - at async tsCompilerOnMessage ([WILDCARD]compiler.ts:[WILDCARD]) + at unwrapResponse ($deno$/ops/dispatch_json.ts:[WILDCARD]) + at Object.sendSync ($deno$/ops/dispatch_json.ts:[WILDCARD]) + at resolveModules ($deno$/compiler/imports.ts:[WILDCARD]) + at processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at Object.processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at async compile ($deno$/compiler.ts:[WILDCARD]) + at async tsCompilerOnMessage ($deno$/compiler.ts:[WILDCARD]) at async workerMessageRecvCallback ([WILDCARD]runtime_worker.ts:[WILDCARD]) diff --git a/cli/tests/error_012_bad_dynamic_import_specifier.ts.out b/cli/tests/error_012_bad_dynamic_import_specifier.ts.out index 57ca909ca..6058e1c5a 100644 --- a/cli/tests/error_012_bad_dynamic_import_specifier.ts.out +++ b/cli/tests/error_012_bad_dynamic_import_specifier.ts.out @@ -1,9 +1,9 @@ [WILDCARD]error: Uncaught URIError: relative import path "bad-module.ts" not prefixed with / or ./ or ../ Imported from "[WILDCARD]/error_012_bad_dynamic_import_specifier.ts" - at unwrapResponse ([WILDCARD]ops/dispatch_json.ts:[WILDCARD]) - at Object.sendSync ([WILDCARD]ops/dispatch_json.ts:[WILDCARD]) - at resolveModules ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at Object.processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at async compile ([WILDCARD]compiler.ts:[WILDCARD]) - at async tsCompilerOnMessage ([WILDCARD]compiler.ts:[WILDCARD]) + at unwrapResponse ($deno$/ops/dispatch_json.ts:[WILDCARD]) + at Object.sendSync ($deno$/ops/dispatch_json.ts:[WILDCARD]) + at resolveModules ($deno$/compiler/imports.ts:[WILDCARD]) + at processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at Object.processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at async compile ($deno$/compiler.ts:[WILDCARD]) + at async tsCompilerOnMessage ($deno$/compiler.ts:[WILDCARD]) at async workerMessageRecvCallback ([WILDCARD]runtime_worker.ts:[WILDCARD]) diff --git a/cli/tests/error_local_static_import_from_remote.ts.out b/cli/tests/error_local_static_import_from_remote.ts.out index de20b9d81..841fdb6e3 100644 --- a/cli/tests/error_local_static_import_from_remote.ts.out +++ b/cli/tests/error_local_static_import_from_remote.ts.out @@ -4,6 +4,6 @@ error: Uncaught PermissionDenied: Remote module are not allowed to statically im at Object.sendAsync ($deno$/ops/dispatch_json.ts:[WILDCARD]) at async processImports ($deno$/compiler/imports.ts:[WILDCARD]) at async Object.processImports ($deno$/compiler/imports.ts:[WILDCARD]) - at async compile ([WILDCARD]compiler.ts:[WILDCARD]) - at async tsCompilerOnMessage ([WILDCARD]compiler.ts:[WILDCARD]) + at async compile ($deno$/compiler.ts:[WILDCARD]) + at async tsCompilerOnMessage ($deno$/compiler.ts:[WILDCARD]) at async workerMessageRecvCallback ($deno$/runtime_worker.ts:[WILDCARD]) diff --git a/cli/tests/error_type_definitions.ts.out b/cli/tests/error_type_definitions.ts.out index 7fcbb9592..e2791a6c0 100644 --- a/cli/tests/error_type_definitions.ts.out +++ b/cli/tests/error_type_definitions.ts.out @@ -1,11 +1,11 @@ [WILDCARD]error: Uncaught URIError: relative import path "baz" not prefixed with / or ./ or ../ Imported from "[WILDCARD]/type_definitions/bar.d.ts" - at unwrapResponse ([WILDCARD]ops/dispatch_json.ts:[WILDCARD]) - at Object.sendSync ([WILDCARD]ops/dispatch_json.ts:[WILDCARD]) - at Object.resolveModules ([WILDCARD]ops/compiler.ts:[WILDCARD]) - at resolveModules ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at async Object.processImports ([WILDCARD]compiler/imports.ts:[WILDCARD]) - at async compile ([WILDCARD]compiler.ts:[WILDCARD]) - at async tsCompilerOnMessage ([WILDCARD]compiler.ts:[WILDCARD]) + at unwrapResponse ($deno$/ops/dispatch_json.ts:[WILDCARD]) + at Object.sendSync ($deno$/ops/dispatch_json.ts:[WILDCARD]) + at Object.resolveModules ($deno$/ops/compiler.ts:[WILDCARD]) + at resolveModules ($deno$/compiler/imports.ts:[WILDCARD]) + at processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at async Object.processImports ($deno$/compiler/imports.ts:[WILDCARD]) + at async compile ($deno$/compiler.ts:[WILDCARD]) + at async tsCompilerOnMessage ($deno$/compiler.ts:[WILDCARD]) at async workerMessageRecvCallback ([WILDCARD]runtime_worker.ts:[WILDCARD]) diff --git a/deno_typescript/compiler_main.js b/deno_typescript/compiler_main.js index 234ed6002..31f539a27 100644 --- a/deno_typescript/compiler_main.js +++ b/deno_typescript/compiler_main.js @@ -19,14 +19,25 @@ function main(configText, rootNames) { const host = new Host(); - assert(rootNames.length > 0); - + assert(rootNames.length === 1); + // If root file is external file, ie. URL with "file://" + // then create an internal name - in case of bundling + // cli runtime this is always true. + const rootFile = rootNames[0]; + const result = externalSpecifierRegEx.exec(rootFile); + let rootSpecifier = rootFile; + if (result) { + const [, specifier] = result; + const internalSpecifier = `$deno$${specifier}`; + moduleMap.set(internalSpecifier, rootFile); + rootSpecifier = internalSpecifier; + } const { options, diagnostics } = configure(configText); handleDiagnostics(host, diagnostics); println(`>>> TS config: ${JSON.stringify(options)}`); - const program = ts.createProgram(rootNames, options, host); + const program = ts.createProgram([rootSpecifier], options, host); handleDiagnostics( host, |