@@ -47,12 +47,15 @@ function getCompilerOptions({
47
47
options : Options . Typescript ;
48
48
basePath : string ;
49
49
} ) : CompilerOptions {
50
- const inputOptions = options . compilerOptions ?? { } ;
50
+ const inputOptions = ts . convertCompilerOptionsFromJson (
51
+ options . compilerOptions ?? { } ,
52
+ basePath ,
53
+ ) ;
51
54
52
55
const { errors, options : convertedCompilerOptions } =
53
56
options . tsconfigFile !== false || options . tsconfigDirectory
54
57
? loadTsconfig ( inputOptions , filename , options )
55
- : ts . convertCompilerOptionsFromJson ( inputOptions , basePath ) ;
58
+ : inputOptions ;
56
59
57
60
if ( errors . length ) {
58
61
throw new Error ( formatDiagnostics ( errors , basePath ) ) ;
@@ -79,8 +82,16 @@ function getCompilerOptions({
79
82
if ( ! warned_verbatim && ! compilerOptions . verbatimModuleSyntax ) {
80
83
warned_verbatim = true ;
81
84
console . warn (
85
+ '\x1b[1m%s\x1b[0m' ,
82
86
'The TypeScript option verbatimModuleSyntax is now required when using Svelte files with lang="ts". Please add it to your tsconfig.json.' ,
83
87
) ;
88
+ // best effort to still add it, if possible, in case no config was found whatsoever
89
+ if (
90
+ Object . keys ( inputOptions . options ) . length === 0 &&
91
+ convertedCompilerOptions === inputOptions . options
92
+ ) {
93
+ compilerOptions . verbatimModuleSyntax = true ;
94
+ }
84
95
}
85
96
86
97
if (
@@ -143,15 +154,18 @@ function transpileTs({
143
154
}
144
155
145
156
export function loadTsconfig (
146
- compilerOptionsJSON : any ,
157
+ fallback : {
158
+ options : ts . CompilerOptions ;
159
+ errors : ts . Diagnostic [ ] ;
160
+ } ,
147
161
filename : string ,
148
162
tsOptions : Options . Typescript ,
149
163
) : {
150
164
options : ts . CompilerOptions ;
151
165
errors : ts . Diagnostic [ ] ;
152
166
} {
153
167
if ( typeof tsOptions . tsconfigFile === 'boolean' ) {
154
- return { errors : [ ] , options : compilerOptionsJSON } ;
168
+ return fallback ;
155
169
}
156
170
157
171
let basePath = process . cwd ( ) ;
@@ -164,7 +178,7 @@ export function loadTsconfig(
164
178
ts . findConfigFile ( fileDirectory , ts . sys . fileExists ) ;
165
179
166
180
if ( ! tsconfigFile ) {
167
- return { errors : [ ] , options : compilerOptionsJSON } ;
181
+ return fallback ;
168
182
}
169
183
170
184
tsconfigFile = isAbsolute ( tsconfigFile )
@@ -193,7 +207,7 @@ export function loadTsconfig(
193
207
config ,
194
208
ts . sys ,
195
209
basePath ,
196
- compilerOptionsJSON ,
210
+ fallback . options ,
197
211
tsconfigFile ,
198
212
) ;
199
213
0 commit comments