File tree Expand file tree Collapse file tree 6 files changed +24
-26
lines changed
Expand file tree Collapse file tree 6 files changed +24
-26
lines changed Original file line number Diff line number Diff line change 2727 "bugs" : {
2828 "url" : " https://github.com/amplitude/experiment-js-client/issues"
2929 },
30- "dependencies" : {
31- "@amplitude/ua-parser-js" : " ^0.7.31"
32- },
30+ "dependencies" : {},
3331 "devDependencies" : {
3432 "@types/amplitude-js" : " ^8.0.2" ,
3533 "amplitude-js" : " ^8.12.0"
Original file line number Diff line number Diff line change @@ -71,7 +71,7 @@ const configs = [
7171 entryFileNames : 'analytics-connector.esm.js' ,
7272 format : 'esm' ,
7373 } ) ,
74- external : [ '@amplitude/ua-parser-js' ] ,
74+ external : [ ] ,
7575 } ,
7676
7777 // modern build for field "es2015" - not ie, esm, es2015 syntax
@@ -81,7 +81,7 @@ const configs = [
8181 entryFileNames : 'analytics-connector.es2015.js' ,
8282 format : 'esm' ,
8383 } ) ,
84- external : [ '@amplitude/ua-parser-js' ] ,
84+ external : [ ] ,
8585 } ,
8686] ;
8787
Original file line number Diff line number Diff line change 1- import { UAParser } from '@amplitude/ua-parser-js' ;
2-
31export type ApplicationContext = {
42 versionName ?: string ;
53 language ?: string ;
@@ -16,31 +14,18 @@ export interface ApplicationContextProvider {
1614export class ApplicationContextProviderImpl
1715 implements ApplicationContextProvider
1816{
19- private readonly ua = new UAParser (
20- typeof navigator !== 'undefined' ? navigator . userAgent : null ,
21- ) . getResult ( ) ;
2217 public versionName : string ;
2318 getApplicationContext ( ) : ApplicationContext {
2419 return {
2520 versionName : this . versionName ,
2621 language : getLanguage ( ) ,
2722 platform : 'Web' ,
28- os : getOs ( this . ua ) ,
29- deviceModel : getDeviceModel ( this . ua ) ,
23+ os : undefined ,
24+ deviceModel : undefined ,
3025 } ;
3126 }
3227}
3328
34- const getOs = ( ua : UAParser ) : string => {
35- return [ ua . browser ?. name , ua . browser ?. major ]
36- . filter ( ( e ) => e !== null && e !== undefined )
37- . join ( ' ' ) ;
38- } ;
39-
40- const getDeviceModel = ( ua : UAParser ) : string => {
41- return ua . os ?. name ;
42- } ;
43-
4429const getLanguage = ( ) : string => {
4530 return (
4631 ( typeof navigator !== 'undefined' &&
Original file line number Diff line number Diff line change 3535 },
3636 "dependencies" : {
3737 "@amplitude/analytics-connector" : " ^1.4.7" ,
38+ "@amplitude/ua-parser-js" : " ^0.7.31" ,
3839 "base64-js" : " 1.5.1" ,
3940 "unfetch" : " 4.1.0"
4041 },
Original file line number Diff line number Diff line change @@ -71,7 +71,7 @@ const configs = [
7171 entryFileNames : 'experiment.esm.js' ,
7272 format : 'esm' ,
7373 } ) ,
74- external : [ '@amplitude/ua-parser-js' , '@amplitude/ analytics-connector'] ,
74+ external : [ '@amplitude/analytics-connector' ] ,
7575 } ,
7676
7777 // modern build for field "es2015" - not ie, esm, es2015 syntax
@@ -81,7 +81,7 @@ const configs = [
8181 entryFileNames : 'experiment.es2015.js' ,
8282 format : 'esm' ,
8383 } ) ,
84- external : [ '@amplitude/ua-parser-js' , '@amplitude/ analytics-connector'] ,
84+ external : [ '@amplitude/analytics-connector' ] ,
8585 } ,
8686] ;
8787
Original file line number Diff line number Diff line change 11import { ApplicationContextProvider } from '@amplitude/analytics-connector' ;
2+ import { UAParser } from '@amplitude/ua-parser-js' ;
23
34import { ExperimentUserProvider } from '../types/provider' ;
45import { ExperimentUser } from '../types/user' ;
56
67export class DefaultUserProvider implements ExperimentUserProvider {
8+ private readonly ua = new UAParser (
9+ typeof navigator !== 'undefined' ? navigator . userAgent : null ,
10+ ) . getResult ( ) ;
711 private readonly contextProvider : ApplicationContextProvider ;
812 public readonly userProvider : ExperimentUserProvider | undefined ;
913 constructor (
@@ -21,9 +25,19 @@ export class DefaultUserProvider implements ExperimentUserProvider {
2125 version : context . versionName ,
2226 language : context . language ,
2327 platform : context . platform ,
24- os : context . os ,
25- device_model : context . deviceModel ,
28+ os : context . os || this . getOs ( this . ua ) ,
29+ device_model : context . deviceModel || this . getDeviceModel ( this . ua ) ,
2630 ...user ,
2731 } ;
2832 }
33+
34+ private getOs ( ua : UAParser ) : string {
35+ return [ ua . browser ?. name , ua . browser ?. major ]
36+ . filter ( ( e ) => e !== null && e !== undefined )
37+ . join ( ' ' ) ;
38+ }
39+
40+ private getDeviceModel ( ua : UAParser ) : string | undefined {
41+ return ua . os ?. name ;
42+ }
2943}
You can’t perform that action at this time.
0 commit comments