From be787d09d537d6c1a6846168613dd0defe069448 Mon Sep 17 00:00:00 2001 From: Kitson Kelly Date: Wed, 26 Feb 2020 07:33:19 +1100 Subject: upgrade: TypeScript 3.8 (#4100) --- deno_typescript/compiler_main.js | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) (limited to 'deno_typescript/compiler_main.js') 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; -- cgit v1.2.3