syncManagedGateDefinitions<TContext, TDefinition extends Object> function

Set<String> syncManagedGateDefinitions<TContext, TDefinition extends Object>(
  1. AuthGateRegistry<TContext> registry,
  2. Map<String, TDefinition> definitions, {
  3. required AuthGateCallback<TContext>? buildGate(
    1. String ability,
    2. TDefinition definition
    ),
  4. required Set<String> managed,
})

Builds and synchronizes managed gate registrations from definitions.

Ability names are trimmed; blank names and definitions whose buildGate result is null are skipped. Managed entries are replaced while unmanaged duplicates are preserved. Returns and updates managed with normalized successful registrations.

Implementation

Set<String> syncManagedGateDefinitions<TContext, TDefinition extends Object>(
  AuthGateRegistry<TContext> registry,
  Map<String, TDefinition> definitions, {
  required AuthGateCallback<TContext>? Function(
    String ability,
    TDefinition definition,
  )
  buildGate,
  required Set<String> managed,
}) {
  final entries = <String, AuthGateCallback<TContext>>{};
  definitions.forEach((ability, definition) {
    final trimmed = ability.trim();
    if (trimmed.isEmpty) {
      return;
    }
    final callback = buildGate(trimmed, definition);
    if (callback == null) {
      return;
    }
    entries[trimmed] = callback;
  });

  final nextManaged = registerGateCallbacksSafely<TContext>(
    registry,
    entries,
    managed: managed,
  );
  syncManagedGateAbilities<TContext>(
    registry,
    managed: managed,
    nextManaged: nextManaged,
  );
  return nextManaged;
}