1
- import type { CategoryConfig , PluginConfig } from '@code-pushup/models' ;
1
+ import type { CoreConfig } from '@code-pushup/models' ;
2
2
import { filterItemRefsBy } from '@code-pushup/utils' ;
3
3
import type { FilterOptions , Filterables } from './filter.model' ;
4
4
import {
@@ -12,7 +12,7 @@ export function filterMiddleware<T extends FilterOptions>(
12
12
) : T {
13
13
const {
14
14
plugins,
15
- categories = [ ] ,
15
+ categories,
16
16
skipCategories = [ ] ,
17
17
onlyCategories = [ ] ,
18
18
skipPlugins = [ ] ,
@@ -26,7 +26,7 @@ export function filterMiddleware<T extends FilterOptions>(
26
26
skipPlugins . length === 0 &&
27
27
onlyPlugins . length === 0
28
28
) {
29
- return { ... originalProcessArgs , categories } ;
29
+ return originalProcessArgs ;
30
30
}
31
31
32
32
handleConflictingOptions ( 'categories' , onlyCategories , skipCategories ) ;
@@ -44,9 +44,11 @@ export function filterMiddleware<T extends FilterOptions>(
44
44
onlyPlugins ,
45
45
verbose ,
46
46
) ;
47
- const finalCategories = filterItemRefsBy ( filteredCategories , ref =>
48
- filteredPlugins . some ( plugin => plugin . slug === ref . plugin ) ,
49
- ) ;
47
+ const finalCategories = filteredCategories
48
+ ? filterItemRefsBy ( filteredCategories , ref =>
49
+ filteredPlugins . some ( plugin => plugin . slug === ref . plugin ) ,
50
+ )
51
+ : filteredCategories ;
50
52
51
53
validateFinalState (
52
54
{ categories : finalCategories , plugins : filteredPlugins } ,
@@ -80,8 +82,12 @@ function applyCategoryFilters(
80
82
skipCategories : string [ ] ,
81
83
onlyCategories : string [ ] ,
82
84
verbose : boolean ,
83
- ) : CategoryConfig [ ] {
84
- if ( skipCategories . length === 0 && onlyCategories . length === 0 ) {
85
+ ) : CoreConfig [ 'categories' ] {
86
+ if (
87
+ ( skipCategories . length === 0 && onlyCategories . length === 0 ) ||
88
+ ! categories ||
89
+ categories . length === 0
90
+ ) {
85
91
return categories ;
86
92
}
87
93
validateFilterOption (
@@ -102,7 +108,7 @@ function applyPluginFilters(
102
108
skipPlugins : string [ ] ,
103
109
onlyPlugins : string [ ] ,
104
110
verbose : boolean ,
105
- ) : PluginConfig [ ] {
111
+ ) : CoreConfig [ 'plugins' ] {
106
112
const filteredPlugins = filterPluginsFromCategories ( {
107
113
categories,
108
114
plugins,
@@ -126,11 +132,12 @@ function applyPluginFilters(
126
132
function filterPluginsFromCategories ( {
127
133
categories,
128
134
plugins,
129
- } : Filterables ) : PluginConfig [ ] {
135
+ } : Filterables ) : CoreConfig [ 'plugins' ] {
136
+ if ( ! categories || categories . length === 0 ) {
137
+ return plugins ;
138
+ }
130
139
const validPluginSlugs = new Set (
131
140
categories . flatMap ( category => category . refs . map ( ref => ref . plugin ) ) ,
132
141
) ;
133
- return categories . length > 0
134
- ? plugins . filter ( plugin => validPluginSlugs . has ( plugin . slug ) )
135
- : plugins ;
142
+ return plugins . filter ( plugin => validPluginSlugs . has ( plugin . slug ) ) ;
136
143
}
0 commit comments