diff --git a/cli/tsc.rs b/cli/tsc.rs index 79967369497ad..ff31bf030061f 100644 --- a/cli/tsc.rs +++ b/cli/tsc.rs @@ -617,6 +617,8 @@ impl TsCompiler { "esModuleInterop": true, "incremental": true, "inlineSourceMap": true, + // TODO(lucacasonato): enable this by default in 1.5.0 + "isolatedModules": unstable, "jsx": "react", "lib": lib, "module": "esnext", @@ -1248,6 +1250,8 @@ pub async fn runtime_compile( "allowNonTsExtensions": true, "checkJs": false, "esModuleInterop": true, + // TODO(lucacasonato): enable this by default in 1.5.0 + "isolatedModules": unstable, "jsx": "react", "module": "esnext", "sourceMap": true, diff --git a/cli/tsc/99_main_compiler.js b/cli/tsc/99_main_compiler.js index aa334907a4bf4..9ed5cab9f9522 100644 --- a/cli/tsc/99_main_compiler.js +++ b/cli/tsc/99_main_compiler.js @@ -879,6 +879,13 @@ delete Object.prototype.__proto__; 7016, ]; + const IGNORED_COMPILE_DIAGNOSTICS = [ + // TS1208: All files must be modules when the '--isolatedModules' flag is + // provided. We can ignore because we guarantuee that all files are + // modules. + 1208, + ]; + const stats = []; let statsStart = 0; @@ -1163,7 +1170,9 @@ delete Object.prototype.__proto__; ...program.getSemanticDiagnostics(), ]; diagnostics = diagnostics.filter( - ({ code }) => !IGNORED_DIAGNOSTICS.includes(code), + ({ code }) => + !IGNORED_DIAGNOSTICS.includes(code) && + !IGNORED_COMPILE_DIAGNOSTICS.includes(code), ); // We will only proceed with the emit if there are no diagnostics. @@ -1334,7 +1343,10 @@ delete Object.prototype.__proto__; const diagnostics = ts .getPreEmitDiagnostics(program) - .filter(({ code }) => !IGNORED_DIAGNOSTICS.includes(code)); + .filter(({ code }) => + !IGNORED_DIAGNOSTICS.includes(code) && + !IGNORED_COMPILE_DIAGNOSTICS.includes(code) + ); const emitResult = program.emit(); assert(emitResult.emitSkipped === false, "Unexpected skip of the emit.");