@ua/react-native-airship 20.1.0 → 20.2.0

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.
@@ -3,4 +3,4 @@ Airship_minSdkVersion=21
3
3
  Airship_targetSdkVersion=34
4
4
  Airship_compileSdkVersion=34
5
5
  Airship_ndkversion=26.1.10909125
6
- Airship_airshipProxyVersion=11.1.0
6
+ Airship_airshipProxyVersion=11.2.1
@@ -19,6 +19,7 @@ import com.urbanairship.android.framework.proxy.proxies.SuspendingPredicate
19
19
  import com.urbanairship.json.JsonMap
20
20
  import com.urbanairship.json.JsonSerializable
21
21
  import com.urbanairship.json.JsonValue
22
+ import kotlin.time.Duration.Companion.milliseconds
22
23
  import kotlinx.coroutines.*
23
24
  import kotlinx.coroutines.flow.filter
24
25
  import java.util.UUID
@@ -698,21 +699,42 @@ class AirshipModule internal constructor(val context: ReactApplicationContext) :
698
699
  }
699
700
 
700
701
  @ReactMethod
701
- override fun featureFlagManagerFlag(flagName: String?, promise: Promise) {
702
+ override fun featureFlagManagerFlag(flagName: String, useResultCache: Boolean, promise: Promise) {
702
703
  promise.resolveSuspending(scope) {
703
- requireNotNull(flagName)
704
- proxy.featureFlagManager.flag(flagName)
704
+ proxy.featureFlagManager.flag(flagName, useResultCache)
705
705
  }
706
706
  }
707
707
 
708
708
  @ReactMethod
709
- override fun featureFlagManagerTrackInteraction(flag: ReadableMap?, promise: Promise) {
709
+ override fun featureFlagManagerTrackInteraction(flag: ReadableMap, promise: Promise) {
710
710
  promise.resolveResult {
711
- val parsedFlag = FeatureFlagProxy(Utils.convertMap(requireNotNull(flag)).toJsonValue())
711
+ val parsedFlag = FeatureFlagProxy(Utils.convertMap(flag).toJsonValue())
712
712
  proxy.featureFlagManager.trackInteraction(parsedFlag)
713
713
  }
714
714
  }
715
715
 
716
+ @ReactMethod
717
+ override fun featureFlagManagerResultCacheGetFlag(flagName: String, promise: Promise) {
718
+ promise.resolveSuspending(scope) {
719
+ proxy.featureFlagManager.resultCache.flag(flagName)
720
+ }
721
+ }
722
+
723
+ @ReactMethod
724
+ override fun featureFlagManagerResultCacheSetFlag(flag: ReadableMap, ttl: Double, promise: Promise) {
725
+ promise.resolveSuspending(scope) {
726
+ val parsedFlag = FeatureFlagProxy(Utils.convertMap(flag).toJsonValue())
727
+ proxy.featureFlagManager.resultCache.cache(parsedFlag, ttl.milliseconds)
728
+ }
729
+ }
730
+
731
+ @ReactMethod
732
+ override fun featureFlagManagerResultCacheRemoveFlag(flagName: String, promise: Promise) {
733
+ promise.resolveSuspending(scope) {
734
+ proxy.featureFlagManager.resultCache.removeCachedFlag(flagName)
735
+ }
736
+ }
737
+
716
738
  @ReactMethod
717
739
  override fun liveActivityListAll(promise: Promise) {
718
740
  promise.resolveResult {
@@ -407,11 +407,23 @@ abstract class AirshipSpec internal constructor(context: ReactApplicationContext
407
407
 
408
408
  @ReactMethod
409
409
  @com.facebook.proguard.annotations.DoNotStrip
410
- abstract fun featureFlagManagerFlag(flagName: String?, promise: Promise)
410
+ abstract fun featureFlagManagerFlag(flagName: String, useResultCache: Boolean, promise: Promise)
411
411
 
412
412
  @ReactMethod
413
413
  @com.facebook.proguard.annotations.DoNotStrip
414
- abstract fun featureFlagManagerTrackInteraction(flag: ReadableMap?, promise: Promise)
414
+ abstract fun featureFlagManagerTrackInteraction(flag: ReadableMap, promise: Promise)
415
+
416
+ @ReactMethod
417
+ @com.facebook.proguard.annotations.DoNotStrip
418
+ abstract fun featureFlagManagerResultCacheGetFlag(flagName: String, promise: Promise)
419
+
420
+ @ReactMethod
421
+ @com.facebook.proguard.annotations.DoNotStrip
422
+ abstract fun featureFlagManagerResultCacheSetFlag(flag: ReadableMap, ttl: Double, promise: Promise)
423
+
424
+ @ReactMethod
425
+ @com.facebook.proguard.annotations.DoNotStrip
426
+ abstract fun featureFlagManagerResultCacheRemoveFlag(flagName: String, promise: Promise)
415
427
 
416
428
  @ReactMethod
417
429
  @com.facebook.proguard.annotations.DoNotStrip
@@ -39,7 +39,7 @@ public class AirshipReactNative: NSObject {
39
39
  AirshipProxy.shared
40
40
  }
41
41
 
42
- public static let version: String = "20.1.0"
42
+ public static let version: String = "20.2.0"
43
43
 
44
44
  private let eventNotifier = EventNotifier()
45
45
 
@@ -599,8 +599,8 @@ public extension AirshipReactNative {
599
599
  @objc
600
600
  public extension AirshipReactNative {
601
601
  @objc
602
- func featureFlagManagerFlag(flagName: String) async throws -> Any {
603
- let result = try await AirshipProxy.shared.featureFlagManager.flag(name: flagName)
602
+ func featureFlagManagerFlag(flagName: String, useResultCache: Bool) async throws -> Any {
603
+ let result = try await AirshipProxy.shared.featureFlagManager.flag(name: flagName, useResultCache: useResultCache)
604
604
  return try AirshipJSON.wrap(result).unWrap() as Any
605
605
  }
606
606
 
@@ -609,6 +609,26 @@ public extension AirshipReactNative {
609
609
  let flag: FeatureFlagProxy = try AirshipJSON.wrap(flag).decode()
610
610
  try AirshipProxy.shared.featureFlagManager.trackInteraction(flag: flag)
611
611
  }
612
+
613
+ @objc
614
+ func featureFlagManagerResultCacheGetFlag(name: String) async throws -> Any {
615
+ let result = try await AirshipProxy.shared.featureFlagManager.resultCache.flag(name: name)
616
+ return try AirshipJSON.wrap(result).unWrap() as Any
617
+ }
618
+
619
+ @objc
620
+ func featureFlagManagerResultCacheSetFlag(flag: Any, ttl: NSNumber) async throws {
621
+ let flag: FeatureFlagProxy = try AirshipJSON.wrap(flag).decode()
622
+ try await AirshipProxy.shared.featureFlagManager.resultCache.cache(
623
+ flag: flag,
624
+ ttl: TimeInterval(ttl.uint64Value/1000)
625
+ )
626
+ }
627
+
628
+ @objc
629
+ func featureFlagManagerResultCacheRemoveFlag(name: String) async throws {
630
+ try await AirshipProxy.shared.featureFlagManager.resultCache.removeCachedFlag(name: name)
631
+ }
612
632
  }
613
633
 
614
634
 
package/ios/RTNAirship.mm CHANGED
@@ -783,15 +783,53 @@ RCT_REMAP_METHOD(featureFlagManagerTrackInteraction,
783
783
 
784
784
  RCT_REMAP_METHOD(featureFlagManagerFlag,
785
785
  featureFlagManagerFlag:(NSString *)flagName
786
+ useResultCache:(BOOL)useResultCache
786
787
  featureFlagManagerFlag:(RCTPromiseResolveBlock)resolve
787
788
  reject:(RCTPromiseRejectBlock)reject) {
788
789
 
789
790
  [AirshipReactNative.shared featureFlagManagerFlagWithFlagName:flagName
791
+ useResultCache:useResultCache
790
792
  completionHandler:^(id result, NSError * _Nullable error) {
791
793
  [self handleResult:result error:error resolve:resolve reject:reject];
792
794
  }];
793
795
  }
794
796
 
797
+ RCT_REMAP_METHOD(featureFlagManagerResultCacheGetFlag,
798
+ featureFlagManagerResultCacheGetFlag:(NSString *)flagName
799
+ featureFlagManagerResultCacheGetFlag:(RCTPromiseResolveBlock)resolve
800
+ reject:(RCTPromiseRejectBlock)reject) {
801
+
802
+ [AirshipReactNative.shared featureFlagManagerResultCacheGetFlagWithName:flagName
803
+ completionHandler:^(id result, NSError * _Nullable error) {
804
+ [self handleResult:result error:error resolve:resolve reject:reject];
805
+ }];
806
+ }
807
+
808
+ RCT_REMAP_METHOD(featureFlagManagerResultCacheSetFlag,
809
+ featureFlagManagerResultCacheSetFlag:(NSDictionary *)flag
810
+ ttl:(nonnull NSNumber *)ttl
811
+ featureFlagManagerResultCacheGetFlag:(RCTPromiseResolveBlock)resolve
812
+ reject:(RCTPromiseRejectBlock)reject) {
813
+
814
+ [AirshipReactNative.shared featureFlagManagerResultCacheSetFlagWithFlag:flag
815
+ ttl:ttl
816
+ completionHandler:^(NSError * _Nullable error) {
817
+ [self handleResult:nil error:error resolve:resolve reject:reject];
818
+ }];
819
+ }
820
+
821
+ RCT_REMAP_METHOD(featureFlagManagerResultCacheRemoveFlag,
822
+ featureFlagManagerResultCacheRemoveFlag:(NSString *)flagName
823
+ featureFlagManagerResultCacheRemoveFlag:(RCTPromiseResolveBlock)resolve
824
+ reject:(RCTPromiseRejectBlock)reject) {
825
+
826
+ [AirshipReactNative.shared featureFlagManagerResultCacheRemoveFlagWithName:flagName
827
+ completionHandler:^(NSError * _Nullable error) {
828
+ [self handleResult:nil error:error resolve:resolve reject:reject];
829
+ }];
830
+ }
831
+
832
+
795
833
  RCT_REMAP_METHOD(liveActivityListAll,
796
834
  liveActivityListAll:(RCTPromiseResolveBlock)resolve
797
835
  reject:(RCTPromiseRejectBlock)reject) {
@@ -3,35 +3,74 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.AirshipFeatureFlagManager = void 0;
6
+ exports.AirshipFeatureFlagResultCache = exports.AirshipFeatureFlagManager = void 0;
7
7
  /**
8
8
  * Airship feature flag manager.
9
9
  */
10
10
  class AirshipFeatureFlagManager {
11
+ /**
12
+ * Feature flag cache.
13
+ */
14
+
11
15
  constructor(module) {
12
16
  this.module = module;
17
+ this.resultCache = new AirshipFeatureFlagResultCache(module);
13
18
  }
14
19
 
15
20
  /**
16
- * Retrieve a given flag's status and associated data by its name.
17
- * @param {string} flagName The flag name
18
- * @return {Promise<FeatureFlag>} A promise resolving to the feature flag
19
- * requested.
20
- * @throws {Error} when failed to fetch
21
- */
22
- flag(flagName) {
23
- return this.module.featureFlagManagerFlag(flagName);
21
+ * Retrieve a given flag's status and associated data by its name.
22
+ * @param {string} flagName The flag name
23
+ * @param {boolean} useResultCache If the response should use result cache or not.
24
+ * @return {Promise<FeatureFlag>} A promise resolving to the feature flag requested.
25
+ * @throws {Error} when failed to fetch
26
+ */
27
+ flag(flagName, useResultCache = true) {
28
+ return this.module.featureFlagManagerFlag(flagName, useResultCache);
24
29
  }
25
30
 
26
31
  /**
27
- * Tracks a feature flag interaction event.
28
- * @param {FeatureFlag} flag The flag
29
- * @return {Promise<Void>} A promise with an empty result.
30
- * @throws {Error} when failed to fetch
31
- */
32
+ * Tracks a feature flag interaction event.
33
+ * @param {FeatureFlag} flag The flag
34
+ * @return {Promise<Void>} A promise with an empty result.
35
+ * @throws {Error} when failed to fetch
36
+ */
32
37
  trackInteraction(flag) {
33
38
  return this.module.featureFlagManagerTrackInteraction(flag);
34
39
  }
35
40
  }
36
41
  exports.AirshipFeatureFlagManager = AirshipFeatureFlagManager;
42
+ class AirshipFeatureFlagResultCache {
43
+ constructor(module) {
44
+ this.module = module;
45
+ }
46
+
47
+ /**
48
+ * Retrieve a flag from the cache.
49
+ * @param {string} flagName The flag name
50
+ * @return {Promise<FeatureFlag>} A promise resolving to the feature flag.
51
+ */
52
+ flag(flagName) {
53
+ return this.module.featureFlagManagerResultCacheGetFlag(flagName);
54
+ }
55
+
56
+ /**
57
+ * Caches a feature flag.
58
+ * @param {FeatureFlag} flag The flag
59
+ * @param {FeatureFlag} ttl Cache TTL in milliseconds.
60
+ * @return {Promise<Void>} A promise with an empty result.
61
+ */
62
+ cache(flag, ttl) {
63
+ return this.module.featureFlagManagerResultCacheSetFlag(flag, ttl);
64
+ }
65
+
66
+ /**
67
+ * Clears the cache for a given flag.
68
+ * @param {FeatureFlag} flagName The flag name
69
+ * @return {Promise<Void>} A promise with an empty result.
70
+ */
71
+ removeCachedFlag(flagName) {
72
+ return this.module.featureFlagManagerResultCacheRemoveFlag(flagName);
73
+ }
74
+ }
75
+ exports.AirshipFeatureFlagResultCache = AirshipFeatureFlagResultCache;
37
76
  //# sourceMappingURL=AirshipFeatureFlagManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AirshipFeatureFlagManager","constructor","module","flag","flagName","featureFlagManagerFlag","trackInteraction","featureFlagManagerTrackInteraction","exports"],"sourceRoot":"../../src","sources":["AirshipFeatureFlagManager.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,yBAAyB,CAAC;EACrCC,WAAWA,CAAkBC,MAAW,EAAE;IAAA,KAAbA,MAAW,GAAXA,MAAW;EAAG;;EAE5C;AACD;AACA;AACA;AACA;AACA;AACA;EACSC,IAAIA,CACTC,QAAgB,EACM;IACtB,OAAO,IAAI,CAACF,MAAM,CAACG,sBAAsB,CAACD,QAAQ,CAAC;EACrD;;EAED;AACD;AACA;AACA;AACA;AACA;EACSE,gBAAgBA,CAACH,IAAiB,EAAiB;IACxD,OAAO,IAAI,CAACD,MAAM,CAACK,kCAAkC,CAACJ,IAAI,CAAC;EAC7D;AACF;AAACK,OAAA,CAAAR,yBAAA,GAAAA,yBAAA"}
1
+ {"version":3,"names":["AirshipFeatureFlagManager","constructor","module","resultCache","AirshipFeatureFlagResultCache","flag","flagName","useResultCache","featureFlagManagerFlag","trackInteraction","featureFlagManagerTrackInteraction","exports","featureFlagManagerResultCacheGetFlag","cache","ttl","featureFlagManagerResultCacheSetFlag","removeCachedFlag","featureFlagManagerResultCacheRemoveFlag"],"sourceRoot":"../../src","sources":["AirshipFeatureFlagManager.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,yBAAyB,CAAC;EACrC;AACF;AACA;;EAGEC,WAAWA,CAAkBC,MAAW,EAAE;IAAA,KAAbA,MAAW,GAAXA,MAAW;IACtC,IAAI,CAACC,WAAW,GAAG,IAAIC,6BAA6B,CAACF,MAAM,CAAC;EAC9D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACSG,IAAIA,CACTC,QAAgB,EAChBC,cAAuB,GAAG,IAAI,EACR;IACtB,OAAO,IAAI,CAACL,MAAM,CAACM,sBAAsB,CAACF,QAAQ,EAAEC,cAAc,CAAC;EACrE;;EAEA;AACF;AACA;AACA;AACA;AACA;EACSE,gBAAgBA,CAACJ,IAAiB,EAAiB;IACxD,OAAO,IAAI,CAACH,MAAM,CAACQ,kCAAkC,CAACL,IAAI,CAAC;EAC7D;AACF;AAACM,OAAA,CAAAX,yBAAA,GAAAA,yBAAA;AAEM,MAAMI,6BAA6B,CAAC;EACzCH,WAAWA,CAAkBC,MAAW,EAAE;IAAA,KAAbA,MAAW,GAAXA,MAAW;EAAG;;EAE3C;AACF;AACA;AACA;AACA;EACSG,IAAIA,CAACC,QAAgB,EAAwB;IAClD,OAAO,IAAI,CAACJ,MAAM,CAACU,oCAAoC,CAACN,QAAQ,CAAC;EACnE;;EAEA;AACF;AACA;AACA;AACA;AACA;EACSO,KAAKA,CAACR,IAAiB,EAAES,GAAW,EAAiB;IAC1D,OAAO,IAAI,CAACZ,MAAM,CAACa,oCAAoC,CAACV,IAAI,EAAES,GAAG,CAAC;EACpE;;EAEA;AACF;AACA;AACA;AACA;EACSE,gBAAgBA,CAACV,QAAgB,EAAiB;IACvD,OAAO,IAAI,CAACJ,MAAM,CAACe,uCAAuC,CAACX,QAAQ,CAAC;EACtE;AACF;AAACK,OAAA,CAAAP,6BAAA,GAAAA,6BAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeRTNAirship.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAqIpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC"}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeRTNAirship.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAwIpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC"}
@@ -2,29 +2,67 @@
2
2
  * Airship feature flag manager.
3
3
  */
4
4
  export class AirshipFeatureFlagManager {
5
+ /**
6
+ * Feature flag cache.
7
+ */
8
+
5
9
  constructor(module) {
6
10
  this.module = module;
11
+ this.resultCache = new AirshipFeatureFlagResultCache(module);
7
12
  }
8
13
 
9
14
  /**
10
- * Retrieve a given flag's status and associated data by its name.
11
- * @param {string} flagName The flag name
12
- * @return {Promise<FeatureFlag>} A promise resolving to the feature flag
13
- * requested.
14
- * @throws {Error} when failed to fetch
15
- */
16
- flag(flagName) {
17
- return this.module.featureFlagManagerFlag(flagName);
15
+ * Retrieve a given flag's status and associated data by its name.
16
+ * @param {string} flagName The flag name
17
+ * @param {boolean} useResultCache If the response should use result cache or not.
18
+ * @return {Promise<FeatureFlag>} A promise resolving to the feature flag requested.
19
+ * @throws {Error} when failed to fetch
20
+ */
21
+ flag(flagName, useResultCache = true) {
22
+ return this.module.featureFlagManagerFlag(flagName, useResultCache);
18
23
  }
19
24
 
20
25
  /**
21
- * Tracks a feature flag interaction event.
22
- * @param {FeatureFlag} flag The flag
23
- * @return {Promise<Void>} A promise with an empty result.
24
- * @throws {Error} when failed to fetch
25
- */
26
+ * Tracks a feature flag interaction event.
27
+ * @param {FeatureFlag} flag The flag
28
+ * @return {Promise<Void>} A promise with an empty result.
29
+ * @throws {Error} when failed to fetch
30
+ */
26
31
  trackInteraction(flag) {
27
32
  return this.module.featureFlagManagerTrackInteraction(flag);
28
33
  }
29
34
  }
35
+ export class AirshipFeatureFlagResultCache {
36
+ constructor(module) {
37
+ this.module = module;
38
+ }
39
+
40
+ /**
41
+ * Retrieve a flag from the cache.
42
+ * @param {string} flagName The flag name
43
+ * @return {Promise<FeatureFlag>} A promise resolving to the feature flag.
44
+ */
45
+ flag(flagName) {
46
+ return this.module.featureFlagManagerResultCacheGetFlag(flagName);
47
+ }
48
+
49
+ /**
50
+ * Caches a feature flag.
51
+ * @param {FeatureFlag} flag The flag
52
+ * @param {FeatureFlag} ttl Cache TTL in milliseconds.
53
+ * @return {Promise<Void>} A promise with an empty result.
54
+ */
55
+ cache(flag, ttl) {
56
+ return this.module.featureFlagManagerResultCacheSetFlag(flag, ttl);
57
+ }
58
+
59
+ /**
60
+ * Clears the cache for a given flag.
61
+ * @param {FeatureFlag} flagName The flag name
62
+ * @return {Promise<Void>} A promise with an empty result.
63
+ */
64
+ removeCachedFlag(flagName) {
65
+ return this.module.featureFlagManagerResultCacheRemoveFlag(flagName);
66
+ }
67
+ }
30
68
  //# sourceMappingURL=AirshipFeatureFlagManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AirshipFeatureFlagManager","constructor","module","flag","flagName","featureFlagManagerFlag","trackInteraction","featureFlagManagerTrackInteraction"],"sourceRoot":"../../src","sources":["AirshipFeatureFlagManager.ts"],"mappings":"AAEA;AACA;AACA;AACA,OAAO,MAAMA,yBAAyB,CAAC;EACrCC,WAAWA,CAAkBC,MAAW,EAAE;IAAA,KAAbA,MAAW,GAAXA,MAAW;EAAG;;EAE5C;AACD;AACA;AACA;AACA;AACA;AACA;EACSC,IAAIA,CACTC,QAAgB,EACM;IACtB,OAAO,IAAI,CAACF,MAAM,CAACG,sBAAsB,CAACD,QAAQ,CAAC;EACrD;;EAED;AACD;AACA;AACA;AACA;AACA;EACSE,gBAAgBA,CAACH,IAAiB,EAAiB;IACxD,OAAO,IAAI,CAACD,MAAM,CAACK,kCAAkC,CAACJ,IAAI,CAAC;EAC7D;AACF"}
1
+ {"version":3,"names":["AirshipFeatureFlagManager","constructor","module","resultCache","AirshipFeatureFlagResultCache","flag","flagName","useResultCache","featureFlagManagerFlag","trackInteraction","featureFlagManagerTrackInteraction","featureFlagManagerResultCacheGetFlag","cache","ttl","featureFlagManagerResultCacheSetFlag","removeCachedFlag","featureFlagManagerResultCacheRemoveFlag"],"sourceRoot":"../../src","sources":["AirshipFeatureFlagManager.ts"],"mappings":"AAEA;AACA;AACA;AACA,OAAO,MAAMA,yBAAyB,CAAC;EACrC;AACF;AACA;;EAGEC,WAAWA,CAAkBC,MAAW,EAAE;IAAA,KAAbA,MAAW,GAAXA,MAAW;IACtC,IAAI,CAACC,WAAW,GAAG,IAAIC,6BAA6B,CAACF,MAAM,CAAC;EAC9D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACSG,IAAIA,CACTC,QAAgB,EAChBC,cAAuB,GAAG,IAAI,EACR;IACtB,OAAO,IAAI,CAACL,MAAM,CAACM,sBAAsB,CAACF,QAAQ,EAAEC,cAAc,CAAC;EACrE;;EAEA;AACF;AACA;AACA;AACA;AACA;EACSE,gBAAgBA,CAACJ,IAAiB,EAAiB;IACxD,OAAO,IAAI,CAACH,MAAM,CAACQ,kCAAkC,CAACL,IAAI,CAAC;EAC7D;AACF;AAEA,OAAO,MAAMD,6BAA6B,CAAC;EACzCH,WAAWA,CAAkBC,MAAW,EAAE;IAAA,KAAbA,MAAW,GAAXA,MAAW;EAAG;;EAE3C;AACF;AACA;AACA;AACA;EACSG,IAAIA,CAACC,QAAgB,EAAwB;IAClD,OAAO,IAAI,CAACJ,MAAM,CAACS,oCAAoC,CAACL,QAAQ,CAAC;EACnE;;EAEA;AACF;AACA;AACA;AACA;AACA;EACSM,KAAKA,CAACP,IAAiB,EAAEQ,GAAW,EAAiB;IAC1D,OAAO,IAAI,CAACX,MAAM,CAACY,oCAAoC,CAACT,IAAI,EAAEQ,GAAG,CAAC;EACpE;;EAEA;AACF;AACA;AACA;AACA;EACSE,gBAAgBA,CAACT,QAAgB,EAAiB;IACvD,OAAO,IAAI,CAACJ,MAAM,CAACc,uCAAuC,CAACV,QAAQ,CAAC;EACtE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeRTNAirship.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAqIlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC"}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeRTNAirship.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAwIlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC"}
@@ -4,21 +4,48 @@ import { FeatureFlag } from './types';
4
4
  */
5
5
  export declare class AirshipFeatureFlagManager {
6
6
  private readonly module;
7
+ /**
8
+ * Feature flag cache.
9
+ */
10
+ readonly resultCache: AirshipFeatureFlagResultCache;
7
11
  constructor(module: any);
8
12
  /**
9
- * Retrieve a given flag's status and associated data by its name.
10
- * @param {string} flagName The flag name
11
- * @return {Promise<FeatureFlag>} A promise resolving to the feature flag
12
- * requested.
13
- * @throws {Error} when failed to fetch
14
- */
15
- flag(flagName: string): Promise<FeatureFlag>;
13
+ * Retrieve a given flag's status and associated data by its name.
14
+ * @param {string} flagName The flag name
15
+ * @param {boolean} useResultCache If the response should use result cache or not.
16
+ * @return {Promise<FeatureFlag>} A promise resolving to the feature flag requested.
17
+ * @throws {Error} when failed to fetch
18
+ */
19
+ flag(flagName: string, useResultCache?: boolean): Promise<FeatureFlag>;
16
20
  /**
17
- * Tracks a feature flag interaction event.
18
- * @param {FeatureFlag} flag The flag
19
- * @return {Promise<Void>} A promise with an empty result.
20
- * @throws {Error} when failed to fetch
21
- */
21
+ * Tracks a feature flag interaction event.
22
+ * @param {FeatureFlag} flag The flag
23
+ * @return {Promise<Void>} A promise with an empty result.
24
+ * @throws {Error} when failed to fetch
25
+ */
22
26
  trackInteraction(flag: FeatureFlag): Promise<void>;
23
27
  }
28
+ export declare class AirshipFeatureFlagResultCache {
29
+ private readonly module;
30
+ constructor(module: any);
31
+ /**
32
+ * Retrieve a flag from the cache.
33
+ * @param {string} flagName The flag name
34
+ * @return {Promise<FeatureFlag>} A promise resolving to the feature flag.
35
+ */
36
+ flag(flagName: string): Promise<FeatureFlag>;
37
+ /**
38
+ * Caches a feature flag.
39
+ * @param {FeatureFlag} flag The flag
40
+ * @param {FeatureFlag} ttl Cache TTL in milliseconds.
41
+ * @return {Promise<Void>} A promise with an empty result.
42
+ */
43
+ cache(flag: FeatureFlag, ttl: number): Promise<void>;
44
+ /**
45
+ * Clears the cache for a given flag.
46
+ * @param {FeatureFlag} flagName The flag name
47
+ * @return {Promise<Void>} A promise with an empty result.
48
+ */
49
+ removeCachedFlag(flagName: string): Promise<void>;
50
+ }
24
51
  //# sourceMappingURL=AirshipFeatureFlagManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AirshipFeatureFlagManager.d.ts","sourceRoot":"","sources":["../../src/AirshipFeatureFlagManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;GAEG;AACH,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,GAAG;IAEzC;;;;;;QAMI;IACI,IAAI,CACT,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC;IAIxB;;;;;QAKI;IACI,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1D"}
1
+ {"version":3,"file":"AirshipFeatureFlagManager.d.ts","sourceRoot":"","sources":["../../src/AirshipFeatureFlagManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;GAEG;AACH,qBAAa,yBAAyB;IAMxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC;;OAEG;IACH,SAAgB,WAAW,EAAE,6BAA6B,CAAC;gBAE9B,MAAM,EAAE,GAAG;IAIxC;;;;;;OAMG;IACI,IAAI,CACT,QAAQ,EAAE,MAAM,EAChB,cAAc,GAAE,OAAc,GAC7B,OAAO,CAAC,WAAW,CAAC;IAIvB;;;;;OAKG;IACI,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1D;AAED,qBAAa,6BAA6B;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,GAAG;IAExC;;;;OAIG;IACI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAInD;;;;;OAKG;IACI,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzD"}
@@ -77,8 +77,11 @@ export interface Spec extends TurboModule {
77
77
  localeSetLocaleOverride(localeIdentifier: string): Promise<void>;
78
78
  localeGetLocale(): Promise<string>;
79
79
  localeClearLocaleOverride(): Promise<void>;
80
- featureFlagManagerFlag(flagName: string): Promise<Object>;
80
+ featureFlagManagerFlag(flagName: string, userResultCache: boolean): Promise<Object>;
81
81
  featureFlagManagerTrackInteraction(flag: Object): Promise<void>;
82
+ featureFlagManagerResultCacheGetFlag(flagName: string): Promise<Object>;
83
+ featureFlagManagerResultCacheSetFlag(flag: Object, ttl: number): Promise<void>;
84
+ featureFlagManagerResultCacheRemoveFlag(flagName: string): Promise<void>;
82
85
  liveActivityListAll(): Promise<Object>;
83
86
  liveActivityList(request: Object): Promise<Object>;
84
87
  liveActivityStart(request: Object): Promise<Object>;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeRTNAirship.d.ts","sourceRoot":"","sources":["../../src/NativeRTNAirship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NativeRTNAirship.d.ts","sourceRoot":"","sources":["../../src/NativeRTNAirship.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ua/react-native-airship",
3
- "version": "20.1.0",
3
+ "version": "20.2.0",
4
4
  "description": "Airship plugin for React Native apps.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -22,6 +22,6 @@ Pod::Spec.new do |s|
22
22
  s.dependency "React-Core"
23
23
  end
24
24
 
25
- s.dependency "AirshipFrameworkProxy", "11.1.0"
25
+ s.dependency "AirshipFrameworkProxy", "11.2.1"
26
26
 
27
27
  end
@@ -4,22 +4,30 @@ import { FeatureFlag } from './types';
4
4
  * Airship feature flag manager.
5
5
  */
6
6
  export class AirshipFeatureFlagManager {
7
- constructor(private readonly module: any) {}
7
+ /**
8
+ * Feature flag cache.
9
+ */
10
+ public readonly resultCache: AirshipFeatureFlagResultCache;
8
11
 
9
- /**
12
+ constructor(private readonly module: any) {
13
+ this.resultCache = new AirshipFeatureFlagResultCache(module);
14
+ }
15
+
16
+ /**
10
17
  * Retrieve a given flag's status and associated data by its name.
11
18
  * @param {string} flagName The flag name
12
- * @return {Promise<FeatureFlag>} A promise resolving to the feature flag
13
- * requested.
19
+ * @param {boolean} useResultCache If the response should use result cache or not.
20
+ * @return {Promise<FeatureFlag>} A promise resolving to the feature flag requested.
14
21
  * @throws {Error} when failed to fetch
15
22
  */
16
23
  public flag(
17
- flagName: string
24
+ flagName: string,
25
+ useResultCache: boolean = true
18
26
  ): Promise<FeatureFlag> {
19
- return this.module.featureFlagManagerFlag(flagName);
27
+ return this.module.featureFlagManagerFlag(flagName, useResultCache);
20
28
  }
21
29
 
22
- /**
30
+ /**
23
31
  * Tracks a feature flag interaction event.
24
32
  * @param {FeatureFlag} flag The flag
25
33
  * @return {Promise<Void>} A promise with an empty result.
@@ -29,3 +37,35 @@ export class AirshipFeatureFlagManager {
29
37
  return this.module.featureFlagManagerTrackInteraction(flag);
30
38
  }
31
39
  }
40
+
41
+ export class AirshipFeatureFlagResultCache {
42
+ constructor(private readonly module: any) {}
43
+
44
+ /**
45
+ * Retrieve a flag from the cache.
46
+ * @param {string} flagName The flag name
47
+ * @return {Promise<FeatureFlag>} A promise resolving to the feature flag.
48
+ */
49
+ public flag(flagName: string): Promise<FeatureFlag> {
50
+ return this.module.featureFlagManagerResultCacheGetFlag(flagName);
51
+ }
52
+
53
+ /**
54
+ * Caches a feature flag.
55
+ * @param {FeatureFlag} flag The flag
56
+ * @param {FeatureFlag} ttl Cache TTL in milliseconds.
57
+ * @return {Promise<Void>} A promise with an empty result.
58
+ */
59
+ public cache(flag: FeatureFlag, ttl: number): Promise<void> {
60
+ return this.module.featureFlagManagerResultCacheSetFlag(flag, ttl);
61
+ }
62
+
63
+ /**
64
+ * Clears the cache for a given flag.
65
+ * @param {FeatureFlag} flagName The flag name
66
+ * @return {Promise<Void>} A promise with an empty result.
67
+ */
68
+ public removeCachedFlag(flagName: string): Promise<void> {
69
+ return this.module.featureFlagManagerResultCacheRemoveFlag(flagName);
70
+ }
71
+ }
@@ -113,8 +113,11 @@ export interface Spec extends TurboModule {
113
113
  localeClearLocaleOverride(): Promise<void>;
114
114
 
115
115
  // Feature Flag Manager
116
- featureFlagManagerFlag(flagName: string):Promise<Object>;
116
+ featureFlagManagerFlag(flagName: string, userResultCache: boolean):Promise<Object>;
117
117
  featureFlagManagerTrackInteraction(flag: Object): Promise<void>;
118
+ featureFlagManagerResultCacheGetFlag(flagName: string): Promise<Object>;
119
+ featureFlagManagerResultCacheSetFlag(flag: Object, ttl: number): Promise<void>;
120
+ featureFlagManagerResultCacheRemoveFlag(flagName: string): Promise<void>;
118
121
 
119
122
  // Live Activity
120
123
  liveActivityListAll(): Promise<Object>;