mergeExpressionPolicies function

ExpressionPolicySection? mergeExpressionPolicies(
  1. List<SpecProfileBundle> profiles
)

Merge expression policies from multiple profiles.

Implementation

ExpressionPolicySection? mergeExpressionPolicies(
    List<SpecProfileBundle> profiles) {
  final allPolicies = <ExpressionPolicy>[];
  String? defaultPolicy;
  ExpressionStyle? globalOverrides;

  for (final profile in profiles) {
    if (profile.expressionPolicies == null) continue;

    allPolicies.addAll(profile.expressionPolicies!.policies);
    defaultPolicy ??= profile.expressionPolicies!.defaultPolicy;
    globalOverrides ??= profile.expressionPolicies!.globalOverrides;
  }

  if (allPolicies.isEmpty) return null;

  return ExpressionPolicySection(
    policies: allPolicies,
    defaultPolicy: defaultPolicy,
    globalOverrides: globalOverrides,
  );
}