summaryrefslogtreecommitdiff
path: root/deno_typescript/compiler_main.js
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2020-02-26 07:33:19 +1100
committerGitHub <noreply@github.com>2020-02-25 15:33:19 -0500
commitbe787d09d537d6c1a6846168613dd0defe069448 (patch)
tree04686868e791e845e35da69f0db027ee14aa9811 /deno_typescript/compiler_main.js
parentf47f3f96726a94dd2df5d68e3c786b5079089dd4 (diff)
upgrade: TypeScript 3.8 (#4100)
Diffstat (limited to 'deno_typescript/compiler_main.js')
-rw-r--r--deno_typescript/compiler_main.js38
1 files changed, 18 insertions, 20 deletions
diff --git a/deno_typescript/compiler_main.js b/deno_typescript/compiler_main.js
index 0f8c5cc14..781550246 100644
--- a/deno_typescript/compiler_main.js
+++ b/deno_typescript/compiler_main.js
@@ -132,7 +132,6 @@ class Host {
*/
readFile(_fileName) {
unreachable();
- return undefined;
}
useCaseSensitiveFileNames() {
@@ -179,33 +178,22 @@ class Host {
}
// This looks up any modules that have been mapped to internal names
- if (moduleMap.has(fileName)) {
- fileName = moduleMap.get(fileName);
- }
+ const moduleUrl = moduleMap.has(fileName)
+ ? moduleMap.get(fileName)
+ : fileName;
- const { sourceCode, moduleName } = dispatch("op_load_module", {
- moduleUrl: fileName,
+ const { sourceCode } = dispatch("op_load_module", {
+ moduleUrl,
languageVersion,
shouldCreateNewSourceFile
});
- // If we match the external specifier regex, we will then create an internal
- // specifier and then use that when creating the source file
- let internalModuleName = moduleName;
- const result = externalSpecifierRegEx.exec(moduleName);
- if (result) {
- const [, specifier] = result;
- const internalSpecifier = `$deno$${specifier}`;
- moduleMap.set(internalSpecifier, moduleName);
- internalModuleName = internalSpecifier;
- }
-
const sourceFile = ts.createSourceFile(
- internalModuleName,
+ fileName,
sourceCode,
languageVersion
);
- sourceFile.moduleName = internalModuleName;
+ sourceFile.moduleName = fileName;
return sourceFile;
}
@@ -245,7 +233,6 @@ class Host {
_shouldCreateNewSourceFile
) {
unreachable();
- return undefined;
}
/**
@@ -278,6 +265,17 @@ class Host {
/** @type {ts.ResolvedModule[]} */
const r = resolvedNames.map(resolvedFileName => {
const extension = getExtension(resolvedFileName);
+ if (!moduleMap.has(resolvedFileName)) {
+ // If we match the external specifier regex, we will then create an internal
+ // specifier and then use that when creating the source file
+ const result = externalSpecifierRegEx.exec(resolvedFileName);
+ if (result) {
+ const [, specifier] = result;
+ const internalSpecifier = `$deno$${specifier}`;
+ moduleMap.set(internalSpecifier, resolvedFileName);
+ resolvedFileName = internalSpecifier;
+ }
+ }
return { resolvedFileName, extension };
});
return r;