@@ -31,38 +31,37 @@ async function getTsconfigFiles(): Promise<TsconfigFile[]> {
3131}
3232
3333const tsconfigSchema = Joi . object ( {
34- extends : '../../tsconfig.json' ,
35- compilerOptions : Joi . alternatives ( ) . conditional (
36- Joi . object ( { noEmit : true } ) . unknown ( ) ,
37- {
38- then : Joi . object ( {
39- noEmit : Joi . valid ( true ) . required ( ) ,
40- incremental : Joi . forbidden ( ) ,
41- tsBuildInfoFile : Joi . forbidden ( ) ,
42- outDir : Joi . forbidden ( ) ,
43- } ) . unknown ( ) ,
44- otherwise : Joi . object ( {
45- noEmit : Joi . valid ( false ) . required ( ) ,
46- incremental : Joi . valid ( true ) . required ( ) ,
47- rootDir : Joi . valid ( 'src' ) . required ( ) ,
48- outDir : Joi . valid ( 'lib' ) . required ( ) ,
49- } ) . unknown ( ) ,
50- } ,
34+ extends : Joi . valid (
35+ '../../tsconfig.base.json' ,
36+ '../../tsconfig.base.client.json' ,
5137 ) ,
38+ compilerOptions : Joi . object ( {
39+ rootDir : Joi . valid ( 'src' ) . required ( ) ,
40+ outDir : Joi . valid ( 'lib' ) . required ( ) ,
41+ tsBuildInfoFile : Joi . valid (
42+ 'lib/.tsbuildinfo' ,
43+ 'lib/.tsbuildinfo-client' ,
44+ 'lib/.tsbuildinfo-worker' ,
45+ ) ,
46+ } ) . unknown ( ) ,
5247} ) . unknown ( ) ;
5348
5449describe ( 'tsconfig files' , ( ) => {
5550 it ( 'contain all required fields' , async ( ) => {
5651 const tsconfigFiles = await getTsconfigFiles ( ) ;
57- tsconfigFiles . forEach ( ( file ) => {
58- try {
59- Joi . attempt ( file . content , tsconfigSchema ) ;
60- } catch ( e ) {
61- (
62- e as Error
63- ) . message += `\n${ file . file } does not match the required schema.` ;
64- throw e ;
65- }
66- } ) ;
52+
53+ tsconfigFiles
54+ // Ignore noEmit configs
55+ . filter ( ( file ) => ! ( file . content . compilerOptions ! . noEmit === true ) )
56+ . forEach ( ( file ) => {
57+ try {
58+ Joi . attempt ( file . content , tsconfigSchema ) ;
59+ } catch ( e ) {
60+ (
61+ e as Error
62+ ) . message += `\n${ file . file } does not match the required schema.` ;
63+ throw e ;
64+ }
65+ } ) ;
6766 } ) ;
6867} ) ;
0 commit comments