@@ -42,12 +42,6 @@ const RNEventEmitter = new NativeEventEmitter(RNIterableAPI);
4242 */
4343/* eslint-enable tsdoc/syntax */
4444export class Iterable {
45- /**
46- * Logger for the Iterable SDK
47- * Log level is set with {@link IterableLogLevel}
48- */
49- static logger : IterableLogger = new IterableLogger ( new IterableConfig ( ) ) ;
50-
5145 /**
5246 * Current configuration of the Iterable SDK
5347 */
@@ -121,9 +115,7 @@ export class Iterable {
121115 config : IterableConfig = new IterableConfig ( )
122116 ) : Promise < boolean > {
123117 Iterable . savedConfig = config ;
124- Iterable . logger = new IterableLogger ( Iterable . savedConfig ) ;
125-
126- this . setupEventHandlers ( ) ;
118+ this . setupIterable ( config ) ;
127119
128120 const version = this . getVersionFromPackageJson ( ) ;
129121
@@ -141,10 +133,7 @@ export class Iterable {
141133 config : IterableConfig = new IterableConfig ( ) ,
142134 apiEndPoint : string
143135 ) : Promise < boolean > {
144- Iterable . savedConfig = config ;
145- Iterable . logger = new IterableLogger ( Iterable . savedConfig ) ;
146-
147- this . setupEventHandlers ( ) ;
136+ this . setupIterable ( config ) ;
148137
149138 const version = this . getVersionFromPackageJson ( ) ;
150139
@@ -155,6 +144,22 @@ export class Iterable {
155144 } ) ;
156145 }
157146
147+ /**
148+ * @internal
149+ * Does basic setup of the Iterable SDK.
150+ * @param config - The configuration object for the Iterable SDK
151+ */
152+ private static setupIterable ( config : IterableConfig = new IterableConfig ( ) ) {
153+ if ( config ) {
154+ Iterable . savedConfig = config ;
155+
156+ IterableLogger . setLoggingEnabled ( config . logReactNativeSdkCalls ?? true ) ;
157+ IterableLogger . setLogLevel ( config . logLevel ) ;
158+ }
159+
160+ this . setupEventHandlers ( ) ;
161+ }
162+
158163 /**
159164 * Associate the current user with the passed in email parameter.
160165 *
@@ -502,7 +507,7 @@ export class Iterable {
502507 items : IterableCommerceItem [ ] ,
503508 dataFields ?: unknown
504509 ) {
505- Iterable ?. logger ?. log ( 'trackPurchase' ) ;
510+ IterableLogger ?. log ( 'trackPurchase' ) ;
506511
507512 IterableApi . trackPurchase ( { total, items, dataFields } ) ;
508513 }
@@ -531,7 +536,7 @@ export class Iterable {
531536 location : IterableInAppLocation
532537 ) {
533538 if ( ! message ?. messageId ) {
534- Iterable ?. logger ?. log (
539+ IterableLogger ?. log (
535540 `Skipping trackInAppOpen because message ID is required, but received ${ message } .`
536541 ) ;
537542 return ;
@@ -968,9 +973,7 @@ export class Iterable {
968973 ( promiseResult as IterableAuthResponse ) . failureCallback ?.( ) ;
969974 }
970975 } else {
971- Iterable ?. logger ?. log (
972- 'No callback received from native layer'
973- ) ;
976+ IterableLogger ?. log ( 'No callback received from native layer' ) ;
974977 }
975978 } , 1000 ) ;
976979 // Use unref() to prevent the timeout from keeping the process alive
@@ -979,12 +982,12 @@ export class Iterable {
979982 //If promise only returns string
980983 Iterable . authManager . passAlongAuthToken ( promiseResult as string ) ;
981984 } else {
982- Iterable ?. logger ?. log (
985+ IterableLogger ?. log (
983986 'Unexpected promise returned. Auth token expects promise of String or AuthResponse type.'
984987 ) ;
985988 }
986989 } )
987- . catch ( ( e ) => Iterable ?. logger ?. log ( e ) ) ;
990+ . catch ( ( e ) => IterableLogger ?. log ( e ) ) ;
988991 } ) ;
989992
990993 RNEventEmitter . addListener (
@@ -1018,7 +1021,7 @@ export class Iterable {
10181021 }
10191022 } )
10201023 . catch ( ( reason ) => {
1021- Iterable ?. logger ?. log ( 'could not open url: ' + reason ) ;
1024+ IterableLogger ?. log ( 'could not open url: ' + reason ) ;
10221025 } ) ;
10231026 }
10241027 }
0 commit comments