@@ -17,6 +17,24 @@ export type CoreConfigMiddlewareOptions = GeneralCliOptions &
1717 CoreConfigCliOptions &
1818 FilterOptions ;
1919
20+ function buildPersistConfig (
21+ cliPersist : CoreConfigCliOptions [ 'persist' ] ,
22+ rcPersist : CoreConfig [ 'persist' ] ,
23+ ) : Required < CoreConfig [ 'persist' ] > {
24+ return {
25+ outputDir :
26+ cliPersist ?. outputDir ??
27+ rcPersist ?. outputDir ??
28+ DEFAULT_PERSIST_OUTPUT_DIR ,
29+ filename :
30+ cliPersist ?. filename ?? rcPersist ?. filename ?? DEFAULT_PERSIST_FILENAME ,
31+ format : normalizeFormats (
32+ cliPersist ?. format ?? rcPersist ?. format ?? DEFAULT_PERSIST_FORMAT ,
33+ ) ,
34+ skipReports : cliPersist ?. skipReports ?? rcPersist ?. skipReports ?? false ,
35+ } ;
36+ }
37+
2038export async function coreConfigMiddleware <
2139 T extends CoreConfigMiddlewareOptions ,
2240> ( processArgs : T ) : Promise < GeneralCliOptions & CoreConfig & FilterOptions > {
@@ -48,23 +66,24 @@ export async function coreConfigMiddleware<
4866 return {
4967 ...( config != null && { config } ) ,
5068 cache : normalizeCache ( cliCache ) ,
51- persist : {
52- outputDir :
53- cliPersist ?. outputDir ??
54- rcPersist ?. outputDir ??
55- DEFAULT_PERSIST_OUTPUT_DIR ,
56- filename :
57- cliPersist ?. filename ?? rcPersist ?. filename ?? DEFAULT_PERSIST_FILENAME ,
58- format : normalizeFormats (
59- cliPersist ?. format ?? rcPersist ?. format ?? DEFAULT_PERSIST_FORMAT ,
60- ) ,
61- } ,
69+ persist : buildPersistConfig ( cliPersist , rcPersist ) ,
6270 ...( upload != null && { upload } ) ,
6371 ...remainingRcConfig ,
6472 ...remainingCliOptions ,
6573 } ;
6674}
6775
76+ export const normalizeBooleanWithNegation = < T extends string > (
77+ propertyName : T ,
78+ cliOptions ?: Record < T , unknown > ,
79+ rcOptions ?: Record < T , unknown > ,
80+ ) : boolean =>
81+ propertyName in ( cliOptions ?? { } )
82+ ? ( cliOptions ?. [ propertyName ] as boolean )
83+ : `no-${ propertyName } ` in ( cliOptions ?? { } )
84+ ? false
85+ : ( ( rcOptions ?. [ propertyName ] as boolean ) ?? true ) ;
86+
6887export const normalizeCache = ( cache ?: CacheConfig ) : CacheConfigObject => {
6988 if ( cache == null ) {
7089 return { write : false , read : false } ;
0 commit comments