Skip to content

Commit 218679e

Browse files
committed
adding onReady() function
1 parent 1c2139d commit 218679e

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/main/kotlin/com/featurevisor/sdk/Conditions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ object Conditions {
114114
attributeValue is AttributeValue.StringValue && conditionValue is ConditionValue.ArrayValue -> {
115115
when (operator) {
116116
IN_ARRAY -> attributeValue.value in conditionValue.values
117-
NOT_IN_ARRAY -> (attributeValue.value in conditionValue.values).not()
117+
NOT_IN_ARRAY -> (attributeValue.value !in conditionValue.values)
118118
else -> false
119119
}
120120
}

src/main/kotlin/com/featurevisor/sdk/Instance.kt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ import com.featurevisor.sdk.FeaturevisorError.MissingDatafileOptions
77
import com.featurevisor.types.*
88
import com.featurevisor.types.EventName.*
99
import kotlinx.coroutines.Job
10+
import kotlinx.coroutines.suspendCancellableCoroutine
1011
import kotlinx.serialization.decodeFromString
1112
import kotlinx.serialization.json.Json
13+
import kotlin.coroutines.resume
1214

1315
typealias ConfigureBucketKey = (Feature, Context, BucketKey) -> BucketKey
1416
typealias ConfigureBucketValue = (Feature, Context, BucketValue) -> BucketValue
@@ -122,6 +124,22 @@ class FeaturevisorInstance private constructor(options: InstanceOptions) {
122124
this.logger?.setLevels(levels)
123125
}
124126

127+
suspend fun onReady(): FeaturevisorInstance {
128+
return suspendCancellableCoroutine { continuation ->
129+
if (this.statuses.ready) {
130+
continuation.resume(this)
131+
}
132+
133+
val cb :(result:Array<out Any>) -> Unit = {
134+
this.emitter.removeListener(READY)
135+
continuation.resume(this)
136+
}
137+
138+
this.emitter.addListener(READY,cb)
139+
}
140+
}
141+
142+
125143
fun setDatafile(datafileJSON: String) {
126144
val data = datafileJSON.toByteArray(Charsets.UTF_8)
127145
try {

0 commit comments

Comments
 (0)