diff --git a/cli/tsc.rs b/cli/tsc.rs index 0e2e19a9cc..ae2db6978f 100644 --- a/cli/tsc.rs +++ b/cli/tsc.rs @@ -621,6 +621,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", @@ -1252,6 +1254,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 dede279c15..a2e127508e 100644 --- a/cli/tsc/99_main_compiler.js +++ b/cli/tsc/99_main_compiler.js @@ -878,6 +878,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; @@ -1162,7 +1169,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. @@ -1333,7 +1342,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.");