function isFeatureFlagValueEqual()

in libraries/azure-app-configuration-importer/src/internal/utils.ts [128:151]


function isFeatureFlagValueEqual(valueA: string | MsFeatureFlagValue, valueB: string): boolean {
  let featureFlagAValue: MsFeatureFlagValue;

  if (typeof valueA == "string") {
    featureFlagAValue = toMsFeatureFlagValue(valueA);
  }
  else {
    featureFlagAValue = valueA as MsFeatureFlagValue;
  }

  const featureFlagBValue: MsFeatureFlagValue = toMsFeatureFlagValue(valueB);

  if (Object.keys(featureFlagAValue).length !== Object.keys(featureFlagBValue).length) {
    return false;
  }

  return featureFlagAValue.id == featureFlagBValue.id &&
    featureFlagAValue.enabled == featureFlagBValue.enabled &&
    featureFlagAValue.description == featureFlagBValue.description &&
    areArrayEqual<FeatureFlagClientFilters>(featureFlagAValue.conditions.clientFilters, featureFlagBValue.conditions.clientFilters) &&
    isEqual(featureFlagAValue.allocation, featureFlagBValue.allocation) &&
    areArrayEqual<Variant>(featureFlagAValue.variants ?? [], featureFlagBValue.variants ?? []) &&
    isEqual(featureFlagAValue.telemetry, featureFlagBValue.telemetry);
}