@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.
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/urbanairship/reactnative/AirshipModule.kt +27 -5
- package/android/src/oldarch/java/com/urbanairship/reactnative/AirshipSpec.kt +14 -2
- package/ios/AirshipReactNative.swift +23 -3
- package/ios/RTNAirship.mm +38 -0
- package/lib/commonjs/AirshipFeatureFlagManager.js +53 -14
- package/lib/commonjs/AirshipFeatureFlagManager.js.map +1 -1
- package/lib/commonjs/NativeRTNAirship.js.map +1 -1
- package/lib/module/AirshipFeatureFlagManager.js +51 -13
- package/lib/module/AirshipFeatureFlagManager.js.map +1 -1
- package/lib/module/NativeRTNAirship.js.map +1 -1
- package/lib/typescript/AirshipFeatureFlagManager.d.ts +39 -12
- package/lib/typescript/AirshipFeatureFlagManager.d.ts.map +1 -1
- package/lib/typescript/NativeRTNAirship.d.ts +4 -1
- package/lib/typescript/NativeRTNAirship.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-airship.podspec +1 -1
- package/src/AirshipFeatureFlagManager.ts +47 -7
- package/src/NativeRTNAirship.ts +4 -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
|
|
702
|
+
override fun featureFlagManagerFlag(flagName: String, useResultCache: Boolean, promise: Promise) {
|
|
702
703
|
promise.resolveSuspending(scope) {
|
|
703
|
-
|
|
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
|
|
709
|
+
override fun featureFlagManagerTrackInteraction(flag: ReadableMap, promise: Promise) {
|
|
710
710
|
promise.resolveResult {
|
|
711
|
-
val parsedFlag = FeatureFlagProxy(Utils.convertMap(
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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;
|
|
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,
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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;
|
|
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;
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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;
|
|
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
|
@@ -4,22 +4,30 @@ import { FeatureFlag } from './types';
|
|
|
4
4
|
* Airship feature flag manager.
|
|
5
5
|
*/
|
|
6
6
|
export class AirshipFeatureFlagManager {
|
|
7
|
-
|
|
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
|
-
* @
|
|
13
|
-
*
|
|
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
|
+
}
|
package/src/NativeRTNAirship.ts
CHANGED
|
@@ -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>;
|