@@ -125,37 +125,49 @@ export default class ClientMetricsServiceV2 {
125
125
validatedToggleNames : string [ ] ;
126
126
unknownToggleNames : string [ ] ;
127
127
} > {
128
+ let toggleNamesToValidate : string [ ] = toggleNames ;
128
129
let unknownToggleNames : string [ ] = [ ] ;
129
130
130
- if ( this . flagResolver . isEnabled ( 'filterExistingFlagNames' ) ) {
131
+ const shouldFilter = this . flagResolver . isEnabled (
132
+ 'filterExistingFlagNames' ,
133
+ ) ;
134
+ const shouldReport = this . flagResolver . isEnabled ( 'reportUnknownFlags' ) ;
135
+
136
+ if ( shouldFilter || shouldReport ) {
131
137
try {
132
- const validNames = await this . cachedFeatureNames ( ) ;
138
+ const existingFlags = await this . cachedFeatureNames ( ) ;
133
139
134
140
const existingNames = toggleNames . filter ( ( name ) =>
135
- validNames . includes ( name ) ,
141
+ existingFlags . includes ( name ) ,
142
+ ) ;
143
+ const nonExistingNames = toggleNames . filter (
144
+ ( name ) => ! existingFlags . includes ( name ) ,
136
145
) ;
137
- if ( this . flagResolver . isEnabled ( 'reportUnknownFlags' ) ) {
138
- unknownToggleNames = toggleNames
139
- . filter ( ( name ) => ! existingNames . includes ( name ) )
140
- . slice ( 0 , MAX_UNKNOWN_FLAGS ) ;
146
+
147
+ if ( shouldFilter ) {
148
+ toggleNamesToValidate = existingNames ;
149
+
150
+ if ( existingNames . length !== toggleNames . length ) {
151
+ this . logger . info (
152
+ `Filtered out ${ toggleNames . length - existingNames . length } toggles with non-existing names` ,
153
+ ) ;
154
+ }
141
155
}
142
- if ( existingNames . length !== toggleNames . length ) {
143
- this . logger . info (
144
- `Filtered out ${ toggleNames . length - existingNames . length } toggles with non-existing names` ,
156
+
157
+ if ( shouldReport ) {
158
+ unknownToggleNames = nonExistingNames . slice (
159
+ 0 ,
160
+ MAX_UNKNOWN_FLAGS ,
145
161
) ;
146
162
}
147
-
148
- const validatedToggleNames =
149
- await this . filterValidToggleNames ( existingNames ) ;
150
-
151
- return { validatedToggleNames, unknownToggleNames } ;
152
163
} catch ( e ) {
153
164
this . logger . error ( e ) ;
154
165
}
155
166
}
156
167
157
- const validatedToggleNames =
158
- await this . filterValidToggleNames ( toggleNames ) ;
168
+ const validatedToggleNames = await this . filterValidToggleNames (
169
+ toggleNamesToValidate ,
170
+ ) ;
159
171
160
172
return { validatedToggleNames, unknownToggleNames } ;
161
173
}
0 commit comments