react-native-moengage 8.5.0 → 8.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ # 18-07-2023
2
+
3
+ ## 8.5.1
4
+ - Adding Strict TypeCheck For TypeScript files
5
+ - Support for configuring the React-Native Plugin console logs
6
+
1
7
  # 25-05-2023
2
8
 
3
9
  ## 8.5.0
package/package.json CHANGED
@@ -1,8 +1,19 @@
1
1
  {
2
2
  "name": "react-native-moengage",
3
- "version": "8.5.0",
3
+ "version": "8.5.1",
4
4
  "description": "MoEngage is a mobile marketing automation company. This react-native SDK helps you track events, trigger smart notifications and in-apps, provides a drop-in Inbox Controller for notifications.",
5
5
  "main": "src/index.ts",
6
+ "files": [
7
+ "android",
8
+ "iOS",
9
+ "src",
10
+ "CHANGELOG.md",
11
+ "README.md",
12
+ "ReactNativeMoEngage.podspec",
13
+ "package.json",
14
+ "!**/__tests__",
15
+ "!**/__mocks__"
16
+ ],
6
17
  "keywords": [
7
18
  "moengage",
8
19
  "push-notification",
package/src/index.ts CHANGED
@@ -44,6 +44,9 @@ import MoESelfHandledCampaignData from "./models/MoESelfHandledCampaignData";
44
44
  import {MoEngagePermissionType} from "./models/MoEngagePermissionType";
45
45
  import MoEInitConfig from "./models/MoEInitConfig";
46
46
  import MoEPushConfig from "./models/MoEPushConfig";
47
+ import MoEngageLogConfig, { MoEngageLogLevel } from "./models/MoEngageLogConfig";
48
+ import MoEngageGlobalCache from "./utils/MoEngageGlobalCache";
49
+ import MoEngageLogger from "./logger/MoEngageLogger";
47
50
 
48
51
  const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
49
52
  const PLATFORM_ANDROID = "android";
@@ -102,7 +105,11 @@ var moeAppId = "";
102
105
  if (MoEReactBridge) {
103
106
  MoeEventEmitter = new NativeEventEmitter(MoEReactBridge);
104
107
  for (var i = 0; i < eventBroadcastNames.length; i++) {
105
- handleEventBroadcast(_eventNames[i], eventBroadcastNames[i]);
108
+ let eventName = _eventNames[i];
109
+ let eventBroadcastName = eventBroadcastNames[i];
110
+ if (eventName !== undefined && eventBroadcastName !== undefined) {
111
+ handleEventBroadcast(eventName, eventBroadcastName);
112
+ }
106
113
  }
107
114
  }
108
115
 
@@ -120,10 +127,6 @@ function commonValidationCheck() {
120
127
  }
121
128
  }
122
129
 
123
- function showError(message: String) {
124
- console.error(message);
125
- }
126
-
127
130
  var ReactMoE = {
128
131
  setEventListener: function (type: any, handler: any) {
129
132
  if (!MoEReactBridge) return;
@@ -136,13 +139,14 @@ var ReactMoE = {
136
139
  },
137
140
 
138
141
  /**
139
- * Initialise the MoEngage SDK, once the hybrid component is mounted
142
+ * Initialise the MoEngage SDK, once the hybrid component is mounted
140
143
  *
141
- * @param appId AppId for the application, can be found on MoEngage Dashboard
144
+ * @param appId AppId for the application, can be found on MoEngage Dashboard
142
145
  * @param initConfig instance of {@link MoEInitConfig}, works only in Android & has no effect for other plaforms.
143
146
  */
144
- initialize: function (appId:string, initConfig?: MoEInitConfig) {
145
- moeAppId = appId;
147
+ initialize: function (appId: string, initConfig: MoEInitConfig = MoEInitConfig.defaultConfig()) {
148
+ moeAppId = appId;
149
+ MoEngageGlobalCache.updateInitConfig(initConfig);
146
150
  commonValidationCheck();
147
151
  if (Platform.OS == PLATFORM_ANDROID) {
148
152
  MoERNAndroid.initialize(getInitConfigJson(appId, initConfig));
@@ -160,8 +164,8 @@ var ReactMoE = {
160
164
  */
161
165
  setAppStatus: function (status: MoEAppStatus) {
162
166
  commonValidationCheck();
163
- console.log("Will track whether it is a fresh install or update.");
164
- let payload = getAppStatusJson(MoEHelper.appStatusToString(status),moeAppId);
167
+ MoEngageLogger.verbose("Will track whether it is a fresh install or update.");
168
+ let payload = getAppStatusJson(MoEHelper.appStatusToString(status), moeAppId);
165
169
  if (Platform.OS == PLATFORM_ANDROID) {
166
170
  MoERNAndroid.setAppStatus(payload);
167
171
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -182,12 +186,12 @@ var ReactMoE = {
182
186
  }
183
187
 
184
188
  if (!(properties instanceof MoEProperties)) {
185
- showError("trackEvent: properties must of MoEProperties type");
189
+ MoEngageLogger.warn("trackEvent: properties must of MoEProperties type");
186
190
  return;
187
191
  }
188
192
 
189
- console.log("trackEvent with properties", properties);
190
- let payload= getMoEPropertiesJson(properties, eventName, moeAppId);
193
+ MoEngageLogger.verbose("trackEvent with properties", properties);
194
+ let payload = getMoEPropertiesJson(properties, eventName, moeAppId);
191
195
 
192
196
  if (Platform.OS == PLATFORM_ANDROID) {
193
197
  MoERNAndroid.trackEvent(payload);
@@ -202,8 +206,8 @@ var ReactMoE = {
202
206
  */
203
207
  setUserUniqueID: function (uniqueId: string) {
204
208
  commonValidationCheck();
205
- console.log("Will set unique ID: " + uniqueId);
206
- const payload = getUserAttributeJson(USER_ATTRIBUTE_UNIQUE_ID,uniqueId,GENERAL,moeAppId)
209
+ MoEngageLogger.verbose("Will set unique ID: ", uniqueId);
210
+ const payload = getUserAttributeJson(USER_ATTRIBUTE_UNIQUE_ID, uniqueId, GENERAL, moeAppId);
207
211
  if (Platform.OS == PLATFORM_ANDROID) {
208
212
  MoERNAndroid.setUserAttribute(payload);
209
213
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -217,8 +221,8 @@ var ReactMoE = {
217
221
  */
218
222
  setAlias: function (alias: string) {
219
223
  commonValidationCheck();
220
- console.log("Will set alias: " + alias);
221
- let payload = getAliasJson(alias,moeAppId);
224
+ MoEngageLogger.verbose("Will set alias: ", alias);
225
+ let payload = getAliasJson(alias, moeAppId);
222
226
  if (Platform.OS == PLATFORM_ANDROID) {
223
227
  MoERNAndroid.setAlias(payload);
224
228
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -232,8 +236,8 @@ var ReactMoE = {
232
236
  */
233
237
  setUserName: function (userName: string) {
234
238
  commonValidationCheck();
235
- console.log("Will set username: " + userName);
236
- const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_NAME,userName,GENERAL,moeAppId)
239
+ MoEngageLogger.verbose("Will set username: ", userName);
240
+ const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_NAME, userName, GENERAL, moeAppId);
237
241
 
238
242
  if (Platform.OS == PLATFORM_ANDROID) {
239
243
  MoERNAndroid.setUserAttribute(payload);
@@ -248,8 +252,8 @@ var ReactMoE = {
248
252
  */
249
253
  setUserFirstName: function (firstName: string) {
250
254
  commonValidationCheck();
251
- console.log("Will set first name: " + firstName);
252
- const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_FIRST_NAME,firstName,GENERAL,moeAppId)
255
+ MoEngageLogger.verbose("Will set first name: ", firstName);
256
+ const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_FIRST_NAME, firstName, GENERAL, moeAppId);
253
257
 
254
258
  if (Platform.OS == PLATFORM_ANDROID) {
255
259
  MoERNAndroid.setUserAttribute(payload);
@@ -264,8 +268,8 @@ var ReactMoE = {
264
268
  */
265
269
  setUserLastName: function (lastName: string) {
266
270
  commonValidationCheck();
267
- console.log("Will set last name: " + lastName);
268
- const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_LAST_NAME,lastName,GENERAL,moeAppId)
271
+ MoEngageLogger.verbose("Will set last name: ", lastName);
272
+ const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_LAST_NAME, lastName, GENERAL, moeAppId);
269
273
 
270
274
  if (Platform.OS == PLATFORM_ANDROID) {
271
275
  MoERNAndroid.setUserAttribute(payload);
@@ -280,8 +284,8 @@ var ReactMoE = {
280
284
  */
281
285
  setUserEmailID: function (emailId: string) {
282
286
  commonValidationCheck();
283
- console.log("Will set email-id " + emailId);
284
- const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_EMAIL,emailId,GENERAL,moeAppId)
287
+ MoEngageLogger.verbose("Will set email-id ", emailId);
288
+ const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_EMAIL, emailId, GENERAL, moeAppId);
285
289
 
286
290
  if (Platform.OS == PLATFORM_ANDROID) {
287
291
  MoERNAndroid.setUserAttribute(payload);
@@ -296,8 +300,8 @@ var ReactMoE = {
296
300
  */
297
301
  setUserContactNumber: function (mobileNumber: string) {
298
302
  commonValidationCheck();
299
- console.log("Will set Mobile Number: " + mobileNumber);
300
- const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_MOBILE,mobileNumber,GENERAL,moeAppId)
303
+ MoEngageLogger.verbose("Will set Mobile Number: ", mobileNumber);
304
+ const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_MOBILE, mobileNumber, GENERAL, moeAppId)
301
305
 
302
306
  if (Platform.OS == PLATFORM_ANDROID) {
303
307
  MoERNAndroid.setUserAttribute(payload);
@@ -312,8 +316,8 @@ var ReactMoE = {
312
316
  */
313
317
  setUserBirthday: function (birthday: string) {
314
318
  commonValidationCheck();
315
- console.log("Will set birthday: " + birthday);
316
- const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_BDAY,birthday,TIMESTAMP,moeAppId)
319
+ MoEngageLogger.verbose("Will set birthday: ", birthday);
320
+ const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_BDAY, birthday, TIMESTAMP, moeAppId);
317
321
 
318
322
  if (Platform.OS == PLATFORM_ANDROID) {
319
323
  MoERNAndroid.setUserAttribute(payload);
@@ -328,9 +332,8 @@ var ReactMoE = {
328
332
  */
329
333
  setUserGender: function (gender: Object) {
330
334
  commonValidationCheck();
331
- console.log("Will set gender: " + gender);
332
-
333
- const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_GENDER,gender,GENERAL,moeAppId)
335
+ MoEngageLogger.verbose("Will set gender: ", gender);
336
+ const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_GENDER, gender, GENERAL, moeAppId);
334
337
 
335
338
  if (Platform.OS == PLATFORM_ANDROID) {
336
339
  MoERNAndroid.setUserAttribute(payload);
@@ -346,10 +349,10 @@ var ReactMoE = {
346
349
  setUserLocation: function (location: MoEGeoLocation) {
347
350
  commonValidationCheck();
348
351
  if (!(location instanceof MoEGeoLocation)) {
349
- showError("setUserLocation: location must of type MoEGeoLocation");
352
+ MoEngageLogger.warn("setUserLocation: location must of type MoEGeoLocation");
350
353
  return;
351
354
  }
352
- const payload = getUserLocAttributeJson(USER_ATTRIBUTE_USER_LOCATION,location.latitude,location.longitude,moeAppId)
355
+ const payload = getUserLocAttributeJson(USER_ATTRIBUTE_USER_LOCATION, location.latitude, location.longitude, moeAppId);
353
356
 
354
357
  if (Platform.OS == PLATFORM_ANDROID) {
355
358
  MoERNAndroid.setUserAttribute(payload);
@@ -365,13 +368,13 @@ var ReactMoE = {
365
368
  */
366
369
  setUserAttribute: function (userAttributeName: string, userAttributeValue: Object) {
367
370
  commonValidationCheck();
368
- console.log(
371
+ MoEngageLogger.verbose(
369
372
  "Will track user attribute [attributeName]: " +
370
373
  userAttributeName +
371
374
  " attributeValue: " +
372
375
  userAttributeValue
373
376
  );
374
- const payload = getUserAttributeJson(userAttributeName,userAttributeValue,GENERAL,moeAppId)
377
+ const payload = getUserAttributeJson(userAttributeName, userAttributeValue, GENERAL, moeAppId);
375
378
 
376
379
  if (Platform.OS == PLATFORM_ANDROID) {
377
380
  MoERNAndroid.setUserAttribute(payload);
@@ -390,7 +393,7 @@ var ReactMoE = {
390
393
  date: String
391
394
  ) {
392
395
  commonValidationCheck();
393
- const payload = getUserAttributeJson(attributeName,date,TIMESTAMP,moeAppId)
396
+ const payload = getUserAttributeJson(attributeName, date, TIMESTAMP, moeAppId);
394
397
 
395
398
  if (Platform.OS == PLATFORM_ANDROID) {
396
399
  MoERNAndroid.setUserAttribute(payload);
@@ -410,12 +413,10 @@ var ReactMoE = {
410
413
  ) {
411
414
  commonValidationCheck();
412
415
  if (!(location instanceof MoEGeoLocation)) {
413
- showError(
414
- "setUserAttributeWithLocation: location must of type MoEGeoLocation"
415
- );
416
+ MoEngageLogger.warn("setUserAttributeWithLocation: location must of type MoEGeoLocation");
416
417
  return;
417
418
  }
418
- const payload = getUserLocAttributeJson(userAttributeName,location.latitude,location.longitude,moeAppId)
419
+ const payload = getUserLocAttributeJson(userAttributeName, location.latitude, location.longitude, moeAppId);
419
420
 
420
421
  if (Platform.OS == PLATFORM_ANDROID) {
421
422
  MoERNAndroid.setUserAttribute(payload);
@@ -429,7 +430,7 @@ var ReactMoE = {
429
430
  */
430
431
  logout: function () {
431
432
  commonValidationCheck();
432
- console.log("Will logout user");
433
+ MoEngageLogger.verbose("Will logout user");
433
434
  if (Platform.OS == PLATFORM_ANDROID) {
434
435
  MoERNAndroid.logout(getAppIdJson(moeAppId));
435
436
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -442,7 +443,7 @@ var ReactMoE = {
442
443
  */
443
444
  showInApp: function () {
444
445
  commonValidationCheck();
445
- console.log("Will try to show in-app.");
446
+ MoEngageLogger.verbose("Will try to show in-app.");
446
447
  if (Platform.OS == PLATFORM_ANDROID) {
447
448
  MoERNAndroid.showInApp(getAppIdJson(moeAppId));
448
449
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -469,12 +470,10 @@ var ReactMoE = {
469
470
  selfHandledShown: function (inAppCampaign: MoESelfHandledCampaignData) {
470
471
  commonValidationCheck();
471
472
  if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
472
- showError(
473
- "selfHandledShown: inAppCampaign must of MoESelfHandledCampaignData type"
474
- );
473
+ MoEngageLogger.warn("selfHandledShown: inAppCampaign must of MoESelfHandledCampaignData type");
475
474
  return;
476
475
  }
477
- let campaignJson = getSelfHandledJson(inAppCampaign,"impression",moeAppId);
476
+ let campaignJson = getSelfHandledJson(inAppCampaign, "impression", moeAppId);
478
477
  if (Platform.OS == PLATFORM_ANDROID) {
479
478
  MoERNAndroid.selfHandledShown(campaignJson);
480
479
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -489,12 +488,10 @@ var ReactMoE = {
489
488
  selfHandledClicked: function (moEClickData: MoESelfHandledCampaignData) {
490
489
  commonValidationCheck();
491
490
  if (!(moEClickData instanceof MoESelfHandledCampaignData)) {
492
- showError(
493
- "selfHandledClicked: inAppCampaign must of MoEClickData type"
494
- );
491
+ MoEngageLogger.warn("selfHandledClicked: inAppCampaign must of MoEClickData type");
495
492
  return;
496
493
  }
497
- let campaignJson = getSelfHandledJson(moEClickData,"click",moeAppId);
494
+ let campaignJson = getSelfHandledJson(moEClickData, "click", moeAppId);
498
495
  if (Platform.OS == PLATFORM_ANDROID) {
499
496
  MoERNAndroid.selfHandledClicked(campaignJson);
500
497
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -509,12 +506,10 @@ var ReactMoE = {
509
506
  selfHandledDismissed: function (inAppCampaign: MoESelfHandledCampaignData) {
510
507
  commonValidationCheck();
511
508
  if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
512
- showError(
513
- "selfHandledDismissed: inAppCampaign must of MoESelfHandledCampaignData type"
514
- );
509
+ MoEngageLogger.warn("selfHandledDismissed: inAppCampaign must of MoESelfHandledCampaignData type");
515
510
  return;
516
511
  }
517
- let campaignJson = getSelfHandledJson(inAppCampaign,"dismissed",moeAppId);
512
+ let campaignJson = getSelfHandledJson(inAppCampaign, "dismissed", moeAppId);
518
513
  if (Platform.OS == PLATFORM_ANDROID) {
519
514
  MoERNAndroid.selfHandledDismissed(campaignJson);
520
515
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -529,12 +524,10 @@ var ReactMoE = {
529
524
  setCurrentContext: function (contexts: Array<String>) {
530
525
  commonValidationCheck();
531
526
  if (!MoEHelper.validateArrayOfString(contexts)) {
532
- showError(
533
- "setCurrentContext: contexts must be a non empty array of strings"
534
- );
527
+ MoEngageLogger.warn("setCurrentContext: contexts must be a non empty array of strings");
535
528
  return;
536
529
  }
537
- let payload = getInAppContextJson(contexts,moeAppId);
530
+ let payload = getInAppContextJson(contexts, moeAppId);
538
531
  if (Platform.OS == PLATFORM_ANDROID) {
539
532
  MoERNAndroid.setAppContext(payload);
540
533
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -562,13 +555,13 @@ var ReactMoE = {
562
555
  */
563
556
  passFcmPushToken: function (pushToken: string) {
564
557
  commonValidationCheck();
565
- console.log("Will process push token");
566
- let payload = getMoEPushTokenJson(pushToken,PUSH_SERVICE_FCM,PLATFORM_ANDROID,moeAppId);
558
+ MoEngageLogger.verbose("Will process push token");
559
+ let payload = getMoEPushTokenJson(pushToken, PUSH_SERVICE_FCM, PLATFORM_ANDROID, moeAppId);
567
560
 
568
561
  if (Platform.OS == PLATFORM_ANDROID) {
569
562
  MoERNAndroid.passFcmPushToken(payload);
570
563
  } else {
571
- console.log("This api is not supported on iOS platform.");
564
+ MoEngageLogger.debug("This api is not supported on iOS platform.");
572
565
  }
573
566
  },
574
567
  /**
@@ -579,13 +572,13 @@ var ReactMoE = {
579
572
  */
580
573
  passFcmPushPayload: function (pushPayload: object) {
581
574
  commonValidationCheck();
582
- console.log("Will process push payload.");
583
- let payload = getMoEPushCampaignJson(pushPayload,PUSH_SERVICE_FCM,moeAppId)
575
+ MoEngageLogger.verbose("Will process push payload.");
576
+ let payload = getMoEPushCampaignJson(pushPayload, PUSH_SERVICE_FCM, moeAppId);
584
577
 
585
578
  if (Platform.OS == PLATFORM_ANDROID) {
586
579
  MoERNAndroid.passFcmPushPayload(payload);
587
580
  } else {
588
- console.log("This api is not supported on iOS platform.");
581
+ MoEngageLogger.debug("This api is not supported on iOS platform.");
589
582
  }
590
583
  },
591
584
 
@@ -594,9 +587,9 @@ var ReactMoE = {
594
587
  */
595
588
  registerForPush: function () {
596
589
  commonValidationCheck();
597
- console.log("Will registerForPush");
590
+ MoEngageLogger.verbose("Will registerForPush");
598
591
  if (Platform.OS == PLATFORM_ANDROID) {
599
- console.log("This api is not supported on android platform.");
592
+ MoEngageLogger.debug("This api is not supported on android platform.");
600
593
  } else if (Platform.OS == PLATFORM_IOS) {
601
594
  MoERNiOS.registerForPush();
602
595
  }
@@ -607,9 +600,9 @@ var ReactMoE = {
607
600
  */
608
601
  disableInbox: function () {
609
602
  commonValidationCheck();
610
- console.log("Will disableInbox");
603
+ MoEngageLogger.verbose("Will disableInbox");
611
604
  if (Platform.OS == PLATFORM_ANDROID) {
612
- console.log("This api is not supported on android platform.");
605
+ MoEngageLogger.debug("This api is not supported on android platform.");
613
606
  } else if (Platform.OS == PLATFORM_IOS) {
614
607
  MoERNiOS.disableInbox(getAppIdJson(moeAppId));
615
608
  }
@@ -627,8 +620,8 @@ var ReactMoE = {
627
620
  },
628
621
 
629
622
  optOutDataTracking: function (shouldOptOutDataTracking: boolean) {
630
- console.log("Will opt out data tracking");
631
- let payload = getOptOutTrackingJson("data",shouldOptOutDataTracking,moeAppId);
623
+ MoEngageLogger.verbose("Will opt out data tracking");
624
+ let payload = getOptOutTrackingJson("data", shouldOptOutDataTracking, moeAppId);
632
625
  if (Platform.OS == PLATFORM_ANDROID) {
633
626
  MoERNAndroid.optOutDataTracking(payload);
634
627
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -644,19 +637,19 @@ var ReactMoE = {
644
637
  */
645
638
  passPushKitPushToken: function (pushToken: string) {
646
639
  commonValidationCheck();
647
- console.log("Will process push-kit push token");
648
- let payload = getMoEPushTokenJson(pushToken,PUSH_SERVICE_PUSH_KIT,PLATFORM_ANDROID,moeAppId);
640
+ MoEngageLogger.verbose("Will process push-kit push token");
641
+ let payload = getMoEPushTokenJson(pushToken, PUSH_SERVICE_PUSH_KIT, PLATFORM_ANDROID, moeAppId);
649
642
 
650
643
  if (Platform.OS == PLATFORM_ANDROID) {
651
644
  MoERNAndroid.passPushKitPushToken(payload);
652
645
  } else {
653
- console.log("This api is not supported on iOS platform.");
646
+ MoEngageLogger.debug("This api is not supported on iOS platform.");
654
647
  }
655
648
  },
656
649
 
657
650
  enableSdk: function () {
658
- console.log("Will enable SDK");
659
- let payload = getSdkStateJson(true,moeAppId)
651
+ MoEngageLogger.verbose("Will enable SDK");
652
+ let payload = getSdkStateJson(true, moeAppId);
660
653
  if (Platform.OS == PLATFORM_ANDROID) {
661
654
  MoERNAndroid.updateSdkState(payload);
662
655
  } else if (Platform.OS == PLATFORM_IOS) {
@@ -665,8 +658,8 @@ var ReactMoE = {
665
658
  },
666
659
 
667
660
  disableSdk: function () {
668
- console.log("Will disable SDK");
669
- let payload = getSdkStateJson(false,moeAppId)
661
+ MoEngageLogger.verbose("Will disable SDK");
662
+ let payload = getSdkStateJson(false, moeAppId);
670
663
 
671
664
  if (Platform.OS == PLATFORM_ANDROID) {
672
665
  MoERNAndroid.updateSdkState(payload);
@@ -676,7 +669,7 @@ var ReactMoE = {
676
669
  },
677
670
 
678
671
  onOrientationChanged: function () {
679
- console.log("Will process screen rotation.");
672
+ MoEngageLogger.verbose("Will process screen rotation.");
680
673
  if (Platform.OS == PLATFORM_ANDROID) {
681
674
  MoERNAndroid.onOrientationChanged();
682
675
  }
@@ -686,8 +679,8 @@ var ReactMoE = {
686
679
  * API to enable Advertising Id tracking for Android.
687
680
  */
688
681
  enableAdIdTracking: function () {
689
- console.log("Will enable advertising-id tracking");
690
- let payload = getAdIdTrackingJson(true,moeAppId);
682
+ MoEngageLogger.verbose("Will enable advertising-id tracking");
683
+ let payload = getAdIdTrackingJson(true, moeAppId);
691
684
 
692
685
  if (Platform.OS == PLATFORM_ANDROID) {
693
686
  MoERNAndroid.enableAdIdTracking(payload);
@@ -701,8 +694,8 @@ var ReactMoE = {
701
694
  * Advertising Id tracking at some point.
702
695
  */
703
696
  disableAdIdTracking: function () {
704
- console.log("Will disable advertising-id tracking");
705
- let payload = getAdIdTrackingJson(false,moeAppId);
697
+ MoEngageLogger.verbose("Will disable advertising-id tracking");
698
+ let payload = getAdIdTrackingJson(false, moeAppId);
706
699
 
707
700
  if (Platform.OS == PLATFORM_ANDROID) {
708
701
  MoERNAndroid.disableAdIdTracking(payload);
@@ -713,8 +706,8 @@ var ReactMoE = {
713
706
  * API to enable Android Id tracking for Android.
714
707
  */
715
708
  enableAndroidIdTracking: function () {
716
- console.log("Will enable android-id tracking");
717
- let payload = getAndroidIdTrackingJson(true,moeAppId);
709
+ MoEngageLogger.verbose("Will enable android-id tracking");
710
+ let payload = getAndroidIdTrackingJson(true, moeAppId);
718
711
 
719
712
  if (Platform.OS == PLATFORM_ANDROID) {
720
713
  MoERNAndroid.enableAndroidIdTracking(payload);
@@ -728,8 +721,8 @@ var ReactMoE = {
728
721
  * Advertising Id tracking at some point.
729
722
  */
730
723
  disableAndroidIdTracking: function () {
731
- console.log("Will disable android-id tracking");
732
- let payload = getAndroidIdTrackingJson(false,moeAppId);
724
+ MoEngageLogger.verbose("Will disable android-id tracking");
725
+ let payload = getAndroidIdTrackingJson(false, moeAppId);
733
726
 
734
727
  if (Platform.OS == PLATFORM_ANDROID) {
735
728
  MoERNAndroid.disableAndroidIdTracking(payload);
@@ -737,28 +730,28 @@ var ReactMoE = {
737
730
  },
738
731
 
739
732
  pushPermissionResponseAndroid: function (isGranted: boolean) {
740
- console.log("Will track permission response");
733
+ MoEngageLogger.verbose("Will track permission response");
741
734
  if (Platform.OS == PLATFORM_ANDROID) {
742
735
  MoERNAndroid.permissionResponse(isGranted, MoEngagePermissionType.PUSH)
743
736
  }
744
737
  },
745
738
 
746
739
  setupNotificationChannelsAndroid: function () {
747
- console.log("Will setup notification");
740
+ MoEngageLogger.verbose("Will setup notification");
748
741
  if (Platform.OS == PLATFORM_ANDROID) {
749
742
  MoERNAndroid.setupNotificationChannels();
750
743
  }
751
744
  },
752
745
 
753
746
  navigateToSettingsAndroid: function () {
754
- console.log("Will navigate to settings");
747
+ MoEngageLogger.verbose("Will navigate to settings");
755
748
  if (Platform.OS == PLATFORM_ANDROID) {
756
749
  MoERNAndroid.navigateToSettings();
757
750
  }
758
751
  },
759
752
 
760
753
  requestPushPermissionAndroid: function () {
761
- console.log("Will request push permission.");
754
+ MoEngageLogger.verbose("Will request push permission.");
762
755
  if (Platform.OS == PLATFORM_ANDROID) {
763
756
  MoERNAndroid.requestPushPermission();
764
757
  }
@@ -771,7 +764,7 @@ var ReactMoE = {
771
764
  * @param {number} count - number of times push permission requested
772
765
  */
773
766
  updatePushPermissionRequestCountAndroid: function (count: number) {
774
- console.log("Will increment push permission request count");
767
+ MoEngageLogger.verbose("Will increment push permission request count");
775
768
  let payload = getPushPermissionRequestCountJson(count, moeAppId);
776
769
 
777
770
  if (Platform.OS == PLATFORM_ANDROID) {
@@ -785,7 +778,7 @@ var ReactMoE = {
785
778
  * Note: By default Device Id tracking is enabled
786
779
  */
787
780
  enableDeviceIdTracking: function () {
788
- console.log("Will enable device id tracking");
781
+ MoEngageLogger.verbose("Will enable device id tracking");
789
782
  let payload = getDeviceIdTrackingJson(true, moeAppId);
790
783
 
791
784
  if (Platform.OS == PLATFORM_ANDROID) {
@@ -797,7 +790,7 @@ var ReactMoE = {
797
790
  * API to disable Device Id tracking for Android.
798
791
  */
799
792
  disableDeviceIdTracking: function () {
800
- console.log("Will disable device id tracking");
793
+ MoEngageLogger.verbose("Will disable device id tracking");
801
794
  let payload = getDeviceIdTrackingJson(false, moeAppId);
802
795
 
803
796
  if (Platform.OS == PLATFORM_ANDROID) {
@@ -815,6 +808,9 @@ export {
815
808
  MoEProperties,
816
809
  MoEAppStatus,
817
810
  MoEInitConfig,
818
- MoEPushConfig
811
+ MoEPushConfig,
812
+ MoEngageLogConfig,
813
+ MoEngageLogLevel,
814
+ MoEngageLogger
819
815
  };
820
816
  export default ReactMoE;
@@ -0,0 +1,77 @@
1
+ import MoEngageGlobalCache from "../utils/MoEngageGlobalCache";
2
+ import { MoEngageLogLevel } from "../models/MoEngageLogConfig";
3
+
4
+ /**
5
+ * Logger to print the ReactNative Plugin log
6
+ * Notes: To Configure the log check {@link MoEInitConfig}
7
+ */
8
+ namespace MoEngageLogger {
9
+
10
+ function isLoggable(logLevel: MoEngageLogLevel): boolean {
11
+ return (__DEV__ || MoEngageGlobalCache.getInitConfig().logConfig.isEnabledForReleaseBuild)
12
+ && MoEngageGlobalCache.getInitConfig().logConfig.logLevel >= logLevel;
13
+ }
14
+
15
+ /**
16
+ * Console error log
17
+ *
18
+ * @param {any} message - log message which need to be logged
19
+ * @param {any} data - additional message or data
20
+ */
21
+ export function error(message: any, data?: any): void {
22
+ if (!isLoggable(MoEngageLogLevel.ERROR)) return;
23
+ if (data === undefined) console.error(message);
24
+ else console.error(message, data);
25
+ }
26
+
27
+ /**
28
+ * Console warn log
29
+ *
30
+ * @param {any} message - log message which need to be logged
31
+ * @param {any} data - additional message or data
32
+ */
33
+ export function warn(message: any, data?: any): void {
34
+ if (!isLoggable(MoEngageLogLevel.WARN)) return;
35
+ if (data === undefined) console.warn(message);
36
+ else console.warn(message, data);
37
+ }
38
+
39
+ /**
40
+ * Console info log
41
+ *
42
+ * @param {any} message - log message which need to be logged
43
+ * @param {any} data - additional message or data
44
+ */
45
+ export function info(message: any, data?: any): void {
46
+ if (!isLoggable(MoEngageLogLevel.INFO)) return;
47
+ if (data === undefined) console.info(message);
48
+ else console.info(message, data);
49
+ }
50
+
51
+ /**
52
+ * Console debug log
53
+ *
54
+ * @param {any} message - log message which need to be logged
55
+ * @param {any} data - additional message or data
56
+ */
57
+ export function debug(message: any, data?: any): void {
58
+ if (!isLoggable(MoEngageLogLevel.DEBUG)) return;
59
+ if (data === undefined) console.debug(message);
60
+ else console.debug(message, data);
61
+ }
62
+
63
+ /**
64
+ * Console verbose log
65
+ * Notes: On Console it will be clubbed with debug log
66
+ *
67
+ * @param {any} message - log message which need to be logged
68
+ * @param {any} data - additional message or data
69
+ */
70
+ export function verbose(message: any, data?: any): void {
71
+ if (!isLoggable(MoEngageLogLevel.VERBOSE)) return;
72
+ if (data === undefined) console.debug(message);
73
+ else console.debug(message, data);
74
+ }
75
+ }
76
+
77
+ export default MoEngageLogger;
@@ -1,3 +1,4 @@
1
+ import MoEngageLogConfig from "./MoEngageLogConfig";
1
2
  import MoEPushConfig from "./MoEPushConfig";
2
3
 
3
4
  /**
@@ -6,21 +7,30 @@ import MoEPushConfig from "./MoEPushConfig";
6
7
  */
7
8
  export default class MoEInitConfig {
8
9
 
9
- pushConfig: MoEPushConfig;
10
+ pushConfig: MoEPushConfig = MoEPushConfig.defaultConfig();
11
+
12
+ logConfig: MoEngageLogConfig = MoEngageLogConfig.defaultConfig();
10
13
 
11
14
  /**
12
15
  * Create an instance of {@link MoEInitConfig}
13
16
  *
14
17
  * @param pushConfig instance of {@link MoEPushConfig}
18
+ * @param logConfig instance of {@link MoEngageLogConfig}
15
19
  */
16
- constructor (pushConfig: MoEPushConfig) {
20
+ constructor(pushConfig: MoEPushConfig = MoEPushConfig.defaultConfig(),
21
+ logConfig: MoEngageLogConfig = MoEngageLogConfig.defaultConfig()
22
+ ) {
17
23
  this.pushConfig = pushConfig;
24
+ this.logConfig = logConfig;
18
25
  }
19
26
 
20
27
  /**
21
28
  * Default Config for {@link MoEInitConfig}
22
29
  */
23
30
  static defaultConfig() {
24
- return new MoEInitConfig(MoEPushConfig.defaultConfig());
31
+ return new MoEInitConfig(
32
+ MoEPushConfig.defaultConfig(),
33
+ MoEngageLogConfig.defaultConfig()
34
+ );
25
35
  }
26
36
  }
@@ -1,4 +1,5 @@
1
1
  /// Helper class to track event attributes.
2
+ import MoEngageLogger from "../logger/MoEngageLogger";
2
3
  import { MoEGeoLocationToJson } from "../utils/MoEObjectToJson";
3
4
  import MoEGeoLocation from "./MoEGeoLocation";
4
5
 
@@ -42,7 +43,7 @@ export default class MoEProperties {
42
43
  if (Array.isArray(value)) {
43
44
  value = (value as Array<any>).filter(e => (this.validateType(["string", "number"], e)));
44
45
  } else if (!this.validateType(["string", "number", "boolean"], value)) {
45
- console.warn("MoEProperties->addAttribute: invalid attribute");
46
+ MoEngageLogger.warn("MoEProperties->addAttribute: invalid attribute");
46
47
  return
47
48
  }
48
49
 
@@ -60,7 +61,7 @@ export default class MoEProperties {
60
61
  return;
61
62
  }
62
63
  if (!this.validateType(["string"], date)) {
63
- console.warn("MoEProperties->addDateAttribute: invalid date attribute");
64
+ MoEngageLogger.warn("MoEProperties->addDateAttribute: invalid date attribute");
64
65
  return
65
66
  }
66
67
  this.dateTimeAttributes[key.toString()] = date;
@@ -81,7 +82,7 @@ export default class MoEProperties {
81
82
  if (this.validateLatLong(location)) {
82
83
  this.locationAttributes[key.toString()] = MoEGeoLocationToJson(location)
83
84
  } else {
84
- console.warn("MoEGeoLocation->addLocationAttribute: invalid coordinates");
85
+ MoEngageLogger.warn("MoEGeoLocation->addLocationAttribute: invalid coordinates");
85
86
  }
86
87
  }
87
88
 
@@ -103,10 +104,10 @@ export default class MoEProperties {
103
104
 
104
105
  private validateLatLong(location: MoEGeoLocation) {
105
106
  return (
106
- location.latitude > -91 &&
107
- location.latitude < 91 &&
108
- location.longitude > -181 &&
109
- location.longitude < 181
107
+ location.latitude.valueOf() > -91 &&
108
+ location.latitude.valueOf() < 91 &&
109
+ location.longitude.valueOf() > -181 &&
110
+ location.longitude.valueOf() < 181
110
111
  );
111
112
  }
112
113
  }
@@ -0,0 +1,69 @@
1
+ import {
2
+ DEFAULT_CONFIG_LOG_LEVEL,
3
+ DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED
4
+ } from "../utils/MoEConstants";
5
+
6
+ /**
7
+ * Config class to configure the React-Native Plugin log.
8
+ * Notes: To configure Native Module log check on Android / iOS initialisation config.
9
+ */
10
+ export default class MoEngageLogConfig {
11
+
12
+ logLevel: MoEngageLogLevel = DEFAULT_CONFIG_LOG_LEVEL;
13
+
14
+ isEnabledForReleaseBuild: boolean = DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED;
15
+
16
+ /**
17
+ * Create an instance for MoEngageLogConfig
18
+ *
19
+ * @param logLevel - Min log level which need to be printed on console
20
+ * @param isEnabledForReleaseBuild - enable / disable the log in release build
21
+ */
22
+ constructor(logLevel: MoEngageLogLevel, isEnabledForReleaseBuild: boolean) {
23
+ this.logLevel = logLevel;
24
+ this.isEnabledForReleaseBuild = isEnabledForReleaseBuild;
25
+ }
26
+
27
+ /**
28
+ * Default config for the log
29
+ */
30
+ static defaultConfig() {
31
+ return new MoEngageLogConfig(DEFAULT_CONFIG_LOG_LEVEL, DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED);
32
+ }
33
+ }
34
+
35
+ /**
36
+ * Different Log Level Supported by the {@link MoEngageLogConfig}
37
+ */
38
+ export const enum MoEngageLogLevel {
39
+
40
+ /**
41
+ * No logs from the SDK would be printed.
42
+ */
43
+ NO_LOG = 0,
44
+
45
+ /**
46
+ * Error logs from the SDK would be printed.
47
+ */
48
+ ERROR = 1,
49
+
50
+ /**
51
+ * Warning logs from the SDK would be printed.
52
+ */
53
+ WARN = 2,
54
+
55
+ /**
56
+ * Info logs from the SDK would be printed.
57
+ */
58
+ INFO = 3,
59
+
60
+ /**
61
+ * Debug logs from the SDK would be printed.
62
+ */
63
+ DEBUG = 4,
64
+
65
+ /**
66
+ * Verbose logs from the SDK would be printed.
67
+ */
68
+ VERBOSE = 5
69
+ }
@@ -1,3 +1,4 @@
1
+ import MoEngageLogger from "../logger/MoEngageLogger";
1
2
  import MoEAccountMeta from "../models/MoEAccountMeta";
2
3
  import MoECampaignContext from "../models/MoECampaignContext";
3
4
  import MoECampaignData from "../models/MoECampaignData";
@@ -7,7 +8,27 @@ import MoEInAppData from "../models/MoEInAppData";
7
8
  import MoEInAppNavigation from "../models/MoEInAppNavigation";
8
9
  import MoESelfHandledCampaign from "../models/MoESelfHandledCampaign";
9
10
  import MoESelfHandledCampaignData from "../models/MoESelfHandledCampaignData";
10
- import { ACTION_TYPE, APP_ID, ATTRIBUTES, FORMATTED_CAMPAIGN_ID, MOE_CAMPAIGN_CONTEXT, MOE_CAMPAIGN_ID, MOE_CAMPAIGN_NAME, MOE_CUSTOM_ACTION, MOE_CUSTOM_ACTION_OBJ_ERROR, MOE_DISMISSINTERVAL, MOE_IN_APP_OBJECT_ERROR, MOE_IS_CANCELLABLE, MOE_KEY_VALUE_PAIR, MOE_NAVIGATION, MOE_NAVIGATION_OBJ_ERROR, MOE_NAVIGATION_TYPE, MOE_PAYLOAD, MOE_PLATFORM, MOE_SELF_HANDLED, MOE_SELF_HANDLED_OBJ_ERROR, MOE_NAVIGATION_VALUE, MOE_WIDGET_ID } from "../utils/MoEConstants";
11
+ import {
12
+ ACTION_TYPE,
13
+ APP_ID,
14
+ FORMATTED_CAMPAIGN_ID,
15
+ MOE_CAMPAIGN_CONTEXT,
16
+ MOE_CAMPAIGN_ID,
17
+ MOE_CAMPAIGN_NAME,
18
+ MOE_CUSTOM_ACTION,
19
+ MOE_CUSTOM_ACTION_OBJ_ERROR,
20
+ MOE_DISMISSINTERVAL,
21
+ MOE_IN_APP_OBJECT_ERROR,
22
+ MOE_KEY_VALUE_PAIR,
23
+ MOE_NAVIGATION,
24
+ MOE_NAVIGATION_OBJ_ERROR,
25
+ MOE_NAVIGATION_TYPE,
26
+ MOE_PAYLOAD,
27
+ MOE_PLATFORM,
28
+ MOE_SELF_HANDLED,
29
+ MOE_SELF_HANDLED_OBJ_ERROR,
30
+ MOE_NAVIGATION_VALUE
31
+ } from "../utils/MoEConstants";
11
32
  import { isValidObject } from "../utils/MoEHelper";
12
33
 
13
34
  /**
@@ -26,7 +47,7 @@ export function isMoEInAppCampaignValid(obj: { [k: string]: any }) {
26
47
  }
27
48
  }
28
49
  catch (error: any) {
29
- console.log(error?.message);
50
+ MoEngageLogger.error(error?.message);
30
51
  return false;
31
52
  }
32
53
  }
@@ -37,7 +58,7 @@ function getMoEAccountMeta(accountMeta: { [k: string]: any }) {
37
58
  }
38
59
 
39
60
  function getMoECampaignData(json: { [k: string]: any }) {
40
- console.log("getMoECampaignData(): Payload: ", json)
61
+ MoEngageLogger.verbose("getMoECampaignData(): Payload: ", json);
41
62
  var campaignId = json[MOE_CAMPAIGN_ID];
42
63
  var campaignName = json[MOE_CAMPAIGN_NAME];
43
64
  var campaignContext = json[MOE_CAMPAIGN_CONTEXT];
@@ -86,7 +107,7 @@ export function getMoEInAppData(json: { [k: string]: any }, accountMetaPayload:
86
107
  * this funtion creates MoESelfHandledCampaignData Object from json
87
108
  */
88
109
  export function getMoESelfHandledCampaignData(json: { [k: string]: any }, accountMetaPayload: { [k: string]: any }) {
89
- console.log("getMoESelfHandledCampaignData(): Payload: ", json);
110
+ MoEngageLogger.verbose("getMoESelfHandledCampaignData(): Payload: ", json);
90
111
  if (isSelfHandledCampaignValid(json)) {
91
112
  var campaignData = getMoECampaignData(json);
92
113
  var platform = json[MOE_PLATFORM];
@@ -111,7 +132,7 @@ export function isInAppCustomActionValid(obj: { [k: string]: any }) {
111
132
  }
112
133
  }
113
134
  catch (error: any) {
114
- console.log(error?.message);
135
+ MoEngageLogger.error(error?.message);
115
136
  return false;
116
137
  }
117
138
  }
@@ -153,7 +174,7 @@ export function isSelfHandledCampaignValid(obj: { [k: string]: any }) {
153
174
  }
154
175
  }
155
176
  catch (error: any) {
156
- console.log(error?.message);
177
+ MoEngageLogger.error(error?.message);
157
178
  return false;
158
179
  }
159
180
  }
@@ -171,7 +192,7 @@ export function isNavigationValid(obj: { [k: string]: any }) {
171
192
  }
172
193
  }
173
194
  catch (error: any) {
174
- console.log(error?.message);
195
+ MoEngageLogger.error(error?.message);
175
196
  return false;
176
197
  }
177
198
  }
@@ -1,3 +1,4 @@
1
+ import MoEngageLogger from "../logger/MoEngageLogger";
1
2
  import MoEAccountMeta from "../models/MoEAccountMeta";
2
3
  import MoEPushCampaign from "../models/MoEPushCampaign";
3
4
  import MoEPushPayload from "../models/MoEPushPayload";
@@ -19,7 +20,7 @@ export function isPushTokenValid(tokenPayload: { [k: string]: any }) {
19
20
  }
20
21
  }
21
22
  catch (error: any) {
22
- console.log(error?.message);
23
+ MoEngageLogger.error(error?.message);
23
24
  return false;
24
25
  }
25
26
 
@@ -54,7 +55,7 @@ export function isPushCampaignObjectValid(pushPayload: { [k: string]: any }) {
54
55
  }
55
56
  }
56
57
  catch (error: any) {
57
- console.log(error?.message);
58
+ MoEngageLogger.error(error?.message);
58
59
  return false;
59
60
  }
60
61
 
@@ -1,4 +1,3 @@
1
- import {MoEngagePermissionType} from "../models/MoEngagePermissionType";
2
1
  import MoEngagePersimissionResultData from "../models/MoEngagePersimissionResultData";
3
2
  import {MOE_PERMISSION_STATE, MOE_PERMISSION_TYPE, MOE_PLATFORM} from "../utils/MoEConstants";
4
3
 
@@ -1,17 +1,8 @@
1
+ import MoEngageLogger from "../logger/MoEngageLogger";
1
2
  import { MoEngagePermissionType } from "../models/MoEngagePermissionType";
2
- import {
3
- getAdIdTrackingJson,
4
- getAndroidIdTrackingJson,
5
- getAppIdJson,
6
- getMoEPushCampaignJson,
7
- getMoEPushTokenJson,
8
- getOptOutTrackingJson,
9
- getPermissionResponseJson,
10
- getSdkStateJson
11
- } from "../utils/MoEJsonBuilder";
3
+ import { getPermissionResponseJson } from "../utils/MoEJsonBuilder";
12
4
 
13
5
  const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
14
- const PLATFORM_ANDROID = "android";
15
6
 
16
7
  export class MoERNAndroid {
17
8
  static initialize(payload: { [k: string]: any }) {
@@ -96,7 +87,7 @@ export class MoERNAndroid {
96
87
 
97
88
  static validateSDKVersion() {
98
89
  MoEReactBridge.validateSdkVersion().catch((error: Error) => {
99
- console.error(error.message);
90
+ MoEngageLogger.error(error.message);
100
91
  });
101
92
  }
102
93
 
@@ -116,7 +107,7 @@ export class MoERNAndroid {
116
107
  MoEReactBridge.deviceIdentifierTrackingStatusUpdate(JSON.stringify(payload))
117
108
  }
118
109
 
119
- static disableAdIdTracking(payload: { [k: string]: any }) {
110
+ static disableAdIdTracking(payload: { [k: string]: any }) {
120
111
  MoEReactBridge.deviceIdentifierTrackingStatusUpdate(JSON.stringify(payload))
121
112
  }
122
113
 
@@ -155,7 +146,4 @@ export class MoERNAndroid {
155
146
  static disableDeviceIdTracking(payload: { [k: string]: any }) {
156
147
  MoEReactBridge.deviceIdentifierTrackingStatusUpdate(JSON.stringify(payload))
157
148
  }
158
- }
159
-
160
- const PUSH_SERVICE_FCM = "FCM"
161
- const PUSH_SERVICE_PUSH_KIT = "PUSH_KIT"
149
+ }
@@ -1,4 +1,4 @@
1
- import { getAppIdJson, getOptOutTrackingJson } from "../utils/MoEJsonBuilder";
1
+ import MoEngageLogger from "../logger/MoEngageLogger";
2
2
 
3
3
  const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
4
4
 
@@ -65,7 +65,7 @@ export class MoERNiOS {
65
65
 
66
66
  static validateSDKVersion() {
67
67
  MoEReactBridge.validateSDKVersion().catch((error: Error) => {
68
- console.error(error.message);
68
+ MoEngageLogger.error(error.message);
69
69
  });
70
70
  }
71
71
 
@@ -1,3 +1,5 @@
1
+ import { MoEngageLogLevel } from "../models/MoEngageLogConfig"
2
+
1
3
  export const MOE_PLATFORM = 'platform'
2
4
  export const MOE_PAYLOAD = 'payload'
3
5
  export const MOE_DATA = 'data'
@@ -66,3 +68,10 @@ export const KEY_PUSH_CONFIG = "pushConfig";
66
68
  // PUSH CLICK KEY
67
69
  export const SELF_HANDLED_PUSH_REDIRECTION_KEY = "selfHandledPushRedirection";
68
70
 
71
+ // Default Log Level For MoEngage React Plugin
72
+ export const DEFAULT_CONFIG_LOG_LEVEL = MoEngageLogLevel.INFO;
73
+
74
+ // Default Logging For Production Build
75
+ export const DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED = false;
76
+
77
+
@@ -6,6 +6,7 @@ import { MOE_LOCATION } from "./MoEConstants";
6
6
  import { MoEPropertiesToJson} from "./MoEObjectToJson";
7
7
  import {MoEngagePermissionType} from "../models/MoEngagePermissionType";
8
8
  import MoEInitConfig from "../models/MoEInitConfig";
9
+ import MoEngageLogger from "../logger/MoEngageLogger";
9
10
 
10
11
  export function getInAppCampaignJson(moEInAppData: MoEInAppData, type: string, appId: String) {
11
12
  var json: { [k: string]: any } = {
@@ -37,7 +38,7 @@ export function getSelfHandledJson(moESelfHandledCampaignData: MoESelfHandledCam
37
38
  platform: moESelfHandledCampaignData.platform
38
39
  }
39
40
  }
40
- console.log("getSelfHandledJson(): payload json: ", json)
41
+ MoEngageLogger.verbose("getSelfHandledJson(): payload json: ", json);
41
42
  return json;
42
43
  }
43
44
 
@@ -253,8 +254,7 @@ export function getDeviceIdTrackingJson(isDeviceIdTrackingEnabled: Boolean, appI
253
254
  return json;
254
255
  }
255
256
 
256
- export function getInitConfigJson(appId: String, initConfig?: MoEInitConfig) {
257
- if (initConfig == undefined) initConfig = MoEInitConfig.defaultConfig()
257
+ export function getInitConfigJson(appId: String, initConfig: MoEInitConfig) {
258
258
  var json: { [k: string]: any } = {
259
259
  accountMeta: {
260
260
  appId: appId
@@ -0,0 +1,22 @@
1
+ import MoEInitConfig from "../models/MoEInitConfig";
2
+
3
+ /**
4
+ * In Memory Cache for Plugin
5
+ */
6
+ namespace MoEngageGlobalCache {
7
+
8
+ /**
9
+ * Plugin Init Config
10
+ */
11
+ let initConfig: MoEInitConfig = MoEInitConfig.defaultConfig();
12
+
13
+ export function updateInitConfig(updatedConfig: MoEInitConfig) {
14
+ initConfig = updatedConfig;
15
+ }
16
+
17
+ export function getInitConfig(): MoEInitConfig {
18
+ return initConfig;
19
+ }
20
+ }
21
+
22
+ export default MoEngageGlobalCache;