No flags found
Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.
e.g., #unittest #integration
#production #enterprise
#frontend #backend
3e647ae
... +2 ...
ed34e55
Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.
e.g., #unittest #integration
#production #enterprise
#frontend #backend
78 | 78 | function detectAll(value, options) { |
|
79 | 79 | var settings = options || {} |
|
80 | 80 | var minLength = MIN_LENGTH |
|
81 | + | var whitelist = settings.whitelist || [] |
|
82 | + | var blacklist = settings.blacklist || [] |
|
81 | 83 | var script |
|
82 | 84 | ||
83 | 85 | if (settings.minLength !== null && settings.minLength !== undefined) { |
94 | 96 | * in `value`. */ |
|
95 | 97 | script = getTopScript(value, expressions) |
|
96 | 98 | ||
97 | - | /* One languages exists for the most-used script. |
|
98 | - | * |
|
99 | - | * If no matches occured, such as a digit only string, |
|
100 | - | * exit with `und`. */ |
|
99 | + | /* One languages exists for the most-used script. */ |
|
101 | 100 | if (!(script[0] in data)) { |
|
102 | - | return script[1] === 0 ? und() : singleLanguageTuples(script[0]) |
|
101 | + | /* If no matches occured, such as a digit only string, |
|
102 | + | * or because the language is ignored, exit with `und`. */ |
|
103 | + | if (script[1] === 0 || !allow(script[0], whitelist, blacklist)) { |
|
104 | + | return und() |
|
105 | + | } |
|
106 | + | ||
107 | + | return singleLanguageTuples(script[0]) |
|
103 | 108 | } |
|
104 | 109 | ||
105 | 110 | /* Get all distances for a given script, and |
|
106 | 111 | * normalize the distance values. */ |
|
107 | 112 | return normalize( |
|
108 | 113 | value, |
|
109 | - | getDistances(utilities.asTuples(value), data[script[0]], settings) |
|
114 | + | getDistances( |
|
115 | + | utilities.asTuples(value), |
|
116 | + | data[script[0]], |
|
117 | + | whitelist, |
|
118 | + | blacklist |
|
119 | + | ) |
|
110 | 120 | ) |
|
111 | 121 | } |
|
112 | 122 |
181 | 191 | * array containing trigram--count tuples. |
|
182 | 192 | * @param {Object.<Object>} languages - multiple |
|
183 | 193 | * trigrams to test against. |
|
184 | - | * @param {Object} options - Configuration. |
|
194 | + | * @param {Array.<string>} whitelist - Whitelisted |
|
195 | + | * languages; if non-empty, only included languages |
|
196 | + | * are kept. |
|
197 | + | * @param {Array.<string>} blacklist - Blacklisted |
|
198 | + | * languages; included languages are ignored. |
|
185 | 199 | * @return {Array.<Array.<string, number>>} An array |
|
186 | 200 | * containing language--distance tuples. |
|
187 | 201 | */ |
|
188 | - | function getDistances(trigrams, languages, options) { |
|
202 | + | function getDistances(trigrams, languages, whitelist, blacklist) { |
|
189 | 203 | var distances = [] |
|
190 | - | var whitelist = options.whitelist || [] |
|
191 | - | var blacklist = options.blacklist || [] |
|
192 | 204 | var language |
|
193 | 205 | ||
194 | 206 | languages = filterLanguages(languages, whitelist, blacklist) |
261 | 273 | filteredLanguages = {} |
|
262 | 274 | ||
263 | 275 | for (language in languages) { |
|
264 | - | if ( |
|
265 | - | (whitelist.length === 0 || whitelist.indexOf(language) !== -1) && |
|
266 | - | blacklist.indexOf(language) === -1 |
|
267 | - | ) { |
|
276 | + | if (allow(language, whitelist, blacklist)) { |
|
268 | 277 | filteredLanguages[language] = languages[language] |
|
269 | 278 | } |
|
270 | 279 | } |
|
271 | 280 | ||
272 | 281 | return filteredLanguages |
|
273 | 282 | } |
|
274 | 283 | ||
284 | + | /** |
|
285 | + | * Check if `language` can match according to settings. |
|
286 | + | * |
|
287 | + | * @param {string} language - Languages |
|
288 | + | * to filter |
|
289 | + | * @param {Array.<string>} whitelist - Whitelisted |
|
290 | + | * languages; if non-empty, only included languages |
|
291 | + | * are kept. |
|
292 | + | * @param {Array.<string>} blacklist - Blacklisted |
|
293 | + | * languages; included languages are ignored. |
|
294 | + | * @return {boolean} - Whether `language` can match |
|
295 | + | */ |
|
296 | + | function allow(language, whitelist, blacklist) { |
|
297 | + | if (whitelist.length === 0 && blacklist.length === 0) { |
|
298 | + | return true |
|
299 | + | } |
|
300 | + | ||
301 | + | return ( |
|
302 | + | (whitelist.length === 0 || whitelist.indexOf(language) !== -1) && |
|
303 | + | blacklist.indexOf(language) === -1 |
|
304 | + | ) |
|
305 | + | } |
|
306 | + | ||
275 | 307 | /* Create a single `und` tuple. */ |
|
276 | 308 | function und() { |
|
277 | 309 | return singleLanguageTuples('und') |
Files | Coverage |
---|---|
packages | 100.00% |
Project Totals (3 files) | 100.00% |
ed34e55
b94eef3
fcbb02b
3e647ae