From 44beb881d8d51ffab07df8057940628715e60dc7 Mon Sep 17 00:00:00 2001 From: Chau Tran Date: Tue, 8 Mar 2022 22:12:04 -0600 Subject: [PATCH] fix(js): mimic the behavior of tsc compilation for runTypeCheck ISSUES CLOSED: #9203 --- packages/js/src/utils/swc/compile-swc.ts | 3 ++- packages/js/src/utils/typescript/run-type-check.ts | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/js/src/utils/swc/compile-swc.ts b/packages/js/src/utils/swc/compile-swc.ts index 2df1654b3bb749..f3faa8d7f8c72f 100644 --- a/packages/js/src/utils/swc/compile-swc.ts +++ b/packages/js/src/utils/swc/compile-swc.ts @@ -20,8 +20,9 @@ function getTypeCheckOptions(normalizedOptions: NormalizedSwcExecutorOptions) { const typeCheckOptions: TypeCheckOptions = { mode: 'emitDeclarationOnly', tsConfigPath: tsConfig, - outDir: outputPath.replace(`/${projectRoot}`, ''), + outDir: outputPath, workspaceRoot: root, + rootDir: projectRoot, }; if (watch) { diff --git a/packages/js/src/utils/typescript/run-type-check.ts b/packages/js/src/utils/typescript/run-type-check.ts index 264989ab17017c..6ebb695ac5dfa4 100644 --- a/packages/js/src/utils/typescript/run-type-check.ts +++ b/packages/js/src/utils/typescript/run-type-check.ts @@ -19,6 +19,7 @@ interface BaseTypeCheckOptions { tsConfigPath: string; cacheDir?: string; incremental?: boolean; + rootDir?: string; } type Mode = NoEmitMode | EmitDeclarationOnlyMode; @@ -116,7 +117,8 @@ export async function runTypeCheck( async function setupTypeScript(options: TypeCheckOptions) { const ts = await import('typescript'); - const { workspaceRoot, tsConfigPath, cacheDir, incremental } = options; + const { workspaceRoot, tsConfigPath, cacheDir, incremental, rootDir } = + options; const config = readTsConfig(tsConfigPath); if (config.errors.length) { throw new Error(`Invalid config file: ${config.errors}`); @@ -132,6 +134,7 @@ async function setupTypeScript(options: TypeCheckOptions) { skipLibCheck: true, ...emitOptions, incremental, + rootDir: rootDir || config.options.rootDir, }; return { ts, workspaceRoot, cacheDir, config, compilerOptions };