@@ -7,16 +7,17 @@ import {
77
88function * getUserAgents ( ) {
99 const regexesCache = new Map < string , RegExp > ( )
10- const getRegex = ( query : string ) => {
11- let regex = regexesCache . get ( query )
10+ const getRegex = ( query : string , allowHigherVersions = true ) => {
11+ const key = `${ query } :${ allowHigherVersions } `
12+ let regex = regexesCache . get ( key )
1213
1314 if ( ! regex ) {
1415 regex = getUserAgentRegex ( {
1516 browsers : query ,
16- allowHigherVersions : true ,
17+ allowHigherVersions,
1718 allowZeroSubversions : true
1819 } )
19- regexesCache . set ( query , regex )
20+ regexesCache . set ( key , regex )
2021 }
2122
2223 return regex
@@ -27,8 +28,9 @@ function* getUserAgents() {
2728 for ( const query of useragent . yes ) {
2829 yield {
2930 ua : useragent . ua ,
30- regex : getRegex ( query ) ,
31+ regex : getRegex ( query , useragent . allowHigherVersions ) ,
3132 query,
33+ allowHigherVersions : useragent . allowHigherVersions ,
3234 should : true
3335 }
3436 }
@@ -38,7 +40,8 @@ function* getUserAgents() {
3840 for ( const query of useragent . no ) {
3941 yield {
4042 ua : useragent . ua ,
41- regex : getRegex ( query ) ,
43+ regex : getRegex ( query , useragent . allowHigherVersions ) ,
44+ allowHigherVersions : useragent . allowHigherVersions ,
4245 query,
4346 should : false
4447 }
@@ -47,10 +50,18 @@ function* getUserAgents() {
4750 }
4851}
4952
50- function inspect ( query : string , ua : string , should : boolean ) {
53+ interface UserAgentTest {
54+ ua : string
55+ regex : RegExp
56+ query : string
57+ allowHigherVersions ?: boolean
58+ should : boolean
59+ }
60+
61+ function inspect ( { query, ua, should, allowHigherVersions } : UserAgentTest ) {
5162 const info = getUserAgentRegexes ( {
5263 browsers : query ,
53- allowHigherVersions : true ,
64+ allowHigherVersions,
5465 allowZeroSubversions : true
5566 } )
5667 const message = `${ should ? 'Should' : 'Should not' } matches:
@@ -74,7 +85,7 @@ describe('UserAgentRegex', () => {
7485 res = ua . regex . test ( ua . ua )
7586
7687 if ( res !== ua . should ) {
77- inspect ( ua . query , ua . ua , ua . should )
88+ inspect ( ua )
7889 }
7990 }
8091 } )
0 commit comments