@@ -3,7 +3,7 @@ import { glob } from 'glob'
33import { findUp } from 'find-up'
44import { createRequire } from 'node:module'
55import { join , dirname } from 'node:path'
6- import { access , readFile } from 'node:fs/promises'
6+ import { access } from 'node:fs/promises'
77import { execa } from 'execa'
88
99function deferred ( ) {
@@ -17,7 +17,7 @@ function deferred () {
1717}
1818
1919function enableSourceMapSupport ( tsconfig ) {
20- if ( ! tsconfig ?. compilerOptions ?. sourceMap ) {
20+ if ( ! tsconfig ?. options ?. sourceMap ) {
2121 return
2222 }
2323
@@ -56,13 +56,21 @@ export default async function runWithTypeScript (config) {
5656 }
5757
5858 if ( tsconfigPath && config . typescript !== false ) {
59- const tsconfig = JSON . parse ( await readFile ( tsconfigPath ) )
6059 const _require = createRequire ( tsconfigPath )
60+ const { parseJsonConfigFileContent, readConfigFile, sys } = _require ( 'typescript' )
61+
62+ const configFile = readConfigFile ( tsconfigPath , sys . readFile )
63+ const tsconfig = parseJsonConfigFileContent (
64+ configFile . config ,
65+ sys ,
66+ dirname ( tsconfigPath )
67+ )
68+
6169 const typescriptPathCWD = _require . resolve ( 'typescript' )
6270 tscPath = join ( typescriptPathCWD , '..' , '..' , 'bin' , 'tsc' )
63- const outDir = tsconfig . compilerOptions . outDir
71+ const outDir = tsconfig . options . outDir
6472 if ( outDir ) {
65- prefix = join ( dirname ( tsconfigPath ) , outDir )
73+ prefix = outDir
6674 }
6775
6876 enableSourceMapSupport ( tsconfig )
@@ -73,7 +81,7 @@ export default async function runWithTypeScript (config) {
7381
7482 // Watch is handled aftterwards
7583 if ( ! config . watch ) {
76- if ( Array . isArray ( tsconfig . references ) && tsconfig . references . length > 0 ) {
84+ if ( Array . isArray ( tsconfig . projectReferences ) && tsconfig . projectReferences . length > 0 ) {
7785 typescriptCliArgs . push ( '--build' )
7886 }
7987 const start = Date . now ( )
@@ -123,8 +131,17 @@ export default async function runWithTypeScript (config) {
123131 p = deferred ( )
124132 let outDir = ''
125133 if ( config [ 'post-compile' ] && tsconfigPath ) {
126- const tsconfig = JSON . parse ( await readFile ( tsconfigPath ) )
127- outDir = tsconfig . compilerOptions . outDir
134+ const _require = createRequire ( tsconfigPath )
135+ const { parseJsonConfigFileContent, readConfigFile, sys } = _require ( 'typescript' )
136+
137+ const configFile = readConfigFile ( tsconfigPath , sys . readFile )
138+ const tsconfig = parseJsonConfigFileContent (
139+ configFile . config ,
140+ sys ,
141+ dirname ( tsconfigPath )
142+ )
143+
144+ outDir = tsconfig . options . outDir
128145
129146 enableSourceMapSupport ( tsconfig )
130147 }
0 commit comments