@@ -2,9 +2,9 @@ import { Browser } from './constants';
22import type { BrowserValue } from './types' ;
33
44interface BrowserConfig {
5- name : string ;
6- pattern : RegExp ;
7- versionPattern : RegExp ;
5+ _name : string ;
6+ _pattern : RegExp ;
7+ _versionPattern : RegExp ;
88}
99
1010interface IBrowserResult {
@@ -15,67 +15,67 @@ interface IBrowserResult {
1515// Top popular browsers set
1616const BROWSER_CONFIGS : BrowserConfig [ ] = [
1717 {
18- name : 'Opera' ,
19- pattern : / (?: o p e r a | o p r | o p i o s ) / i,
20- versionPattern : / (?: o p e r a | o p r | o p i o s ) [ / ] ( \d + (?: \. \d + ) ? ) / i,
18+ _name : 'Opera' ,
19+ _pattern : / (?: o p e r a | o p r | o p i o s ) / i,
20+ _versionPattern : / (?: o p e r a | o p r | o p i o s ) [ / ] ( \d + (?: \. \d + ) ? ) / i,
2121 } ,
2222 {
23- name : 'Facebook' ,
24- pattern : / F B A N \/ / i,
25- versionPattern : / F B A V \/ ( \d + (?: \. \d + ) ? ) / i,
23+ _name : 'Facebook' ,
24+ _pattern : / F B A N \/ / i,
25+ _versionPattern : / F B A V \/ ( \d + (?: \. \d + ) ? ) / i,
2626 } ,
2727 {
28- name : 'Samsung Browser' ,
29- pattern : / s a m s u n g b r o w s e r / i,
30- versionPattern : / s a m s u n g b r o w s e r [ / ] ( \d + (?: \. \d + ) ? ) / i,
28+ _name : 'Samsung Browser' ,
29+ _pattern : / s a m s u n g b r o w s e r / i,
30+ _versionPattern : / s a m s u n g b r o w s e r [ / ] ( \d + (?: \. \d + ) ? ) / i,
3131 } ,
3232 {
33- name : 'Yandex Browser' ,
34- pattern : / y a b r o w s e r / i,
35- versionPattern : / y a b r o w s e r [ / ] ( \d + (?: \. \d + ) ? ) / i,
33+ _name : 'Yandex Browser' ,
34+ _pattern : / y a b r o w s e r / i,
35+ _versionPattern : / y a b r o w s e r [ / ] ( \d + (?: \. \d + ) ? ) / i,
3636 } ,
3737 {
38- name : 'Vivaldi' ,
39- pattern : / v i v a l d i / i,
40- versionPattern : / v i v a l d i [ / ] ( \d + (?: \. \d + ) ? ) / i,
38+ _name : 'Vivaldi' ,
39+ _pattern : / v i v a l d i / i,
40+ _versionPattern : / v i v a l d i [ / ] ( \d + (?: \. \d + ) ? ) / i,
4141 } ,
4242 {
43- name : 'UC Browser' ,
44- pattern : / u c b r o w s e r / i,
45- versionPattern : / u c b r o w s e r [ / ] ( \d + (?: \. \d + ) ? ) / i,
43+ _name : 'UC Browser' ,
44+ _pattern : / u c b r o w s e r / i,
45+ _versionPattern : / u c b r o w s e r [ / ] ( \d + (?: \. \d + ) ? ) / i,
4646 } ,
4747 {
48- name : 'Microsoft Edge' ,
49- pattern : / e d g / i,
50- versionPattern : / e d g [ / ] ( \d + (?: \. \d + ) ? ) / i,
48+ _name : 'Microsoft Edge' ,
49+ _pattern : / e d g / i,
50+ _versionPattern : / e d g [ / ] ( \d + (?: \. \d + ) ? ) / i,
5151 } ,
5252 {
53- name : 'Firefox' ,
54- pattern : / f i r e f o x | i c e w e a s e l | f x i o s / i,
55- versionPattern : / (?: f i r e f o x | i c e w e a s e l | f x i o s ) [ / ] ( \d + (?: \. \d + ) ? ) / i,
53+ _name : 'Firefox' ,
54+ _pattern : / f i r e f o x | i c e w e a s e l | f x i o s / i,
55+ _versionPattern : / (?: f i r e f o x | i c e w e a s e l | f x i o s ) [ / ] ( \d + (?: \. \d + ) ? ) / i,
5656 } ,
5757 {
58- name : 'Chromium' ,
59- pattern : / c h r o m i u m / i,
60- versionPattern : / c h r o m i u m [ / ] ( \d + (?: \. \d + ) ? ) / i,
58+ _name : 'Chromium' ,
59+ _pattern : / c h r o m i u m / i,
60+ _versionPattern : / c h r o m i u m [ / ] ( \d + (?: \. \d + ) ? ) / i,
6161 } ,
6262 {
63- name : 'Chrome' ,
64- pattern : / c h r o m e | c r i o s | c r m o / i,
65- versionPattern : / (?: c h r o m e | c r i o s | c r m o ) [ / ] ( \d + (?: \. \d + ) ? ) / i,
63+ _name : 'Chrome' ,
64+ _pattern : / c h r o m e | c r i o s | c r m o / i,
65+ _versionPattern : / (?: c h r o m e | c r i o s | c r m o ) [ / ] ( \d + (?: \. \d + ) ? ) / i,
6666 } ,
6767 {
68- name : 'Safari' ,
69- pattern : / s a f a r i | a p p l e w e b k i t / i,
70- versionPattern : / v e r s i o n [ / ] ( \d + (?: \. \d + ) ? ) / i,
68+ _name : 'Safari' ,
69+ _pattern : / s a f a r i | a p p l e w e b k i t / i,
70+ _versionPattern : / v e r s i o n [ / ] ( \d + (?: \. \d + ) ? ) / i,
7171 } ,
7272] ;
7373
7474export function getBrowser ( userAgent : string ) : IBrowserResult {
7575 for ( const config of BROWSER_CONFIGS ) {
76- if ( config . pattern . test ( userAgent ) ) {
77- const version = userAgent . match ( config . versionPattern ) ?. [ 1 ] ?? '' ;
78- return { name : config . name , version } ;
76+ if ( config . _pattern . test ( userAgent ) ) {
77+ const version = userAgent . match ( config . _versionPattern ) ?. [ 1 ] ?? '' ;
78+ return { name : config . _name , version } ;
7979 }
8080 }
8181 return { name : 'Unknown' , version : '' } ;
0 commit comments