@@ -42,11 +42,11 @@ const resolveProjectPackage = (
4242 }
4343} ;
4444
45- const isTypeScriptGoSupportedPackage = (
45+ const getTypeScriptGoPackage = (
4646 packageJsonPath : string | undefined ,
47- ) : boolean => {
47+ ) : TypeScriptGoPackage | undefined => {
4848 if ( ! packageJsonPath ) {
49- return false ;
49+ return undefined ;
5050 }
5151
5252 try {
@@ -55,16 +55,28 @@ const isTypeScriptGoSupportedPackage = (
5555 typeof packageJson . version === 'string' ? packageJson . version : '' ;
5656 const versionMatch = version . match ( / ^ ( \d + ) \. ( \d + ) (?: \. | $ | - ) / ) ;
5757
58- return (
58+ if (
5959 packageJson . name === TYPESCRIPT_PACKAGE &&
60- Boolean ( versionMatch ) &&
60+ versionMatch &&
6161 Number ( versionMatch [ 1 ] ) >= 7
62- ) ;
62+ ) {
63+ return 'typescript' ;
64+ }
65+
66+ if ( packageJson . name === TYPESCRIPT_PREVIEW_PACKAGE ) {
67+ return 'preview' ;
68+ }
69+
70+ return undefined ;
6371 } catch {
64- return false ;
72+ return undefined ;
6573 }
6674} ;
6775
76+ const isTypeScriptGoSupportedPackage = (
77+ packageJsonPath : string | undefined ,
78+ ) : boolean => getTypeScriptGoPackage ( packageJsonPath ) === 'typescript' ;
79+
6880const resolveProjectTypeScriptPaths = (
6981 rootPath : string ,
7082) : ProjectTypeScriptPaths => {
@@ -100,11 +112,17 @@ const applyTypeScriptDefaults = (
100112 typescriptOptions as TypeScriptOptionsWithTsgoPackage ;
101113
102114 if ( configuredPath ) {
103- return (
104- Boolean ( typescriptOptions . tsgo ) ||
105- ( typescriptOptions . tsgo !== false &&
106- isTypeScriptGoSupportedPackage ( configuredPath ) )
107- ) ;
115+ const tsgoPackage = getTypeScriptGoPackage ( configuredPath ) ;
116+
117+ if ( typescriptOptions . tsgo === undefined && tsgoPackage === 'typescript' ) {
118+ typescriptOptions . tsgo = true ;
119+ }
120+
121+ if ( typescriptOptions . tsgo === true && tsgoPackage ) {
122+ normalizedOptions . tsgoPackage = tsgoPackage ;
123+ }
124+
125+ return Boolean ( typescriptOptions . tsgo ) ;
108126 }
109127
110128 if ( typescriptOptions . tsgo === false ) {
0 commit comments