@@ -173,7 +173,7 @@ internal class PostHogFeatureFlags(
173173 if (flagDef != null ) {
174174 try {
175175 config.logger.log(" Attempting local evaluation for flag '$key ' for distinctId: $distinctId " )
176- val props = (personProperties ? : emptyMap() ).toMutableMap()
176+ val props = (personProperties ? : EMPTY_PROPERTIES ).toMutableMap()
177177
178178 val result =
179179 computeFlagLocally(
@@ -248,7 +248,7 @@ internal class PostHogFeatureFlags(
248248
249249 config.logger.log(" Attempting local evaluation for distinctId: $distinctId " )
250250 val localFlags = mutableMapOf<String , FeatureFlag >()
251- val props = (personProperties ? : emptyMap() ).toMutableMap()
251+ val props = (personProperties ? : EMPTY_PROPERTIES ).toMutableMap()
252252
253253 // Evaluate all flags locally
254254 for ((key, flagDef) in currentFlagDefinitions) {
@@ -408,7 +408,7 @@ internal class PostHogFeatureFlags(
408408 if (! localEvaluation) {
409409 return
410410 }
411- if (personalApiKey.isNullOrBlank() ) {
411+ if (personalApiKey == null ) {
412412 logMissingPersonalApiKey()
413413 return
414414 }
@@ -539,7 +539,7 @@ internal class PostHogFeatureFlags(
539539 return
540540 }
541541
542- if (personalApiKey.isNullOrBlank() ) {
542+ if (personalApiKey == null ) {
543543 logMissingPersonalApiKey()
544544 return
545545 }
@@ -615,15 +615,15 @@ internal class PostHogFeatureFlags(
615615 return evaluator.matchFeatureFlagProperties(
616616 flag = flag,
617617 distinctId = evaluationId,
618- properties = evaluationProperties ? : emptyMap() ,
619- cohortProperties = cohorts ? : emptyMap() ,
618+ properties = evaluationProperties ? : EMPTY_PROPERTIES ,
619+ cohortProperties = cohorts ? : EMPTY_COHORT_PROPERTIES ,
620620 flagsByKey = flags,
621621 evaluationCache = evaluationCache,
622622 )
623623 }
624624
625625 private fun localEvaluationEnabled (): Boolean {
626- return localEvaluation && ! personalApiKey.isNullOrBlank()
626+ return localEvaluation && personalApiKey != null
627627 }
628628
629629 private fun logMissingPersonalApiKey () {
@@ -723,16 +723,9 @@ internal class PostHogFeatureFlags(
723723 onlyEvaluateLocally : Boolean ,
724724 disableGeoip : Boolean ,
725725 ): EvaluateFlagsResult {
726- if (onlyEvaluateLocally && personalApiKey.isNullOrBlank() ) {
726+ if (onlyEvaluateLocally && personalApiKey == null ) {
727727 logMissingPersonalApiKey()
728- return EvaluateFlagsResult (
729- flags = emptyMap(),
730- locallyEvaluated = emptyMap(),
731- requestId = null ,
732- evaluatedAt = null ,
733- definitionsLoadedAt = definitionsLoadedAt,
734- responseError = null ,
735- )
728+ return EMPTY_EVALUATE_FLAGS_RESULT
736729 }
737730
738731 val cacheKey =
@@ -745,7 +738,7 @@ internal class PostHogFeatureFlags(
745738 disableGeoip = disableGeoip,
746739 )
747740 cache.getEntry(cacheKey)?.let { entry ->
748- val flags = entry.flags ? : emptyMap()
741+ val flags = entry.flags ? : EMPTY_FLAGS
749742 return EvaluateFlagsResult (
750743 flags = flags,
751744 locallyEvaluated = flags.mapValues { isLocallyEvaluated(it.value) },
@@ -787,14 +780,7 @@ internal class PostHogFeatureFlags(
787780 }
788781
789782 if (onlyEvaluateLocally) {
790- return EvaluateFlagsResult (
791- flags = emptyMap(),
792- locallyEvaluated = emptyMap(),
793- requestId = null ,
794- evaluatedAt = null ,
795- definitionsLoadedAt = definitionsLoadedAt,
796- responseError = null ,
797- )
783+ return EMPTY_EVALUATE_FLAGS_RESULT
798784 }
799785
800786 val remoteFlags =
@@ -805,7 +791,7 @@ internal class PostHogFeatureFlags(
805791 groupProperties,
806792 flagKeys,
807793 disableGeoip,
808- ) ? : emptyMap()
794+ ) ? : EMPTY_FLAGS
809795 val entry = cache.getEntry(cacheKey)
810796 return EvaluateFlagsResult (
811797 flags = remoteFlags,
@@ -861,5 +847,19 @@ internal class PostHogFeatureFlags(
861847 internal companion object {
862848 internal const val LOCAL_EVALUATION_REASON_CODE : String = " local_evaluation"
863849 internal const val LOCAL_EVALUATION_REASON_DESCRIPTION : String = " Evaluated locally"
850+
851+ private val EMPTY_PROPERTIES : Map <String , Any ?> = emptyMap()
852+ private val EMPTY_COHORT_PROPERTIES : Map <String , PropertyGroup > = emptyMap()
853+ private val EMPTY_FLAGS : Map <String , FeatureFlag > = emptyMap()
854+ private val EMPTY_LOCALLY_EVALUATED : Map <String , Boolean > = emptyMap()
855+ private val EMPTY_EVALUATE_FLAGS_RESULT =
856+ EvaluateFlagsResult (
857+ flags = EMPTY_FLAGS ,
858+ locallyEvaluated = EMPTY_LOCALLY_EVALUATED ,
859+ requestId = null ,
860+ evaluatedAt = null ,
861+ definitionsLoadedAt = null ,
862+ responseError = null ,
863+ )
864864 }
865865}
0 commit comments