syncManagedGateDefinitions<TContext, TDefinition extends Object> function
Set<String>
syncManagedGateDefinitions<TContext, TDefinition extends Object>(
- AuthGateRegistry<
TContext> registry, - Map<
String, TDefinition> definitions, { - required AuthGateCallback<
TContext> ? buildGate(- String ability,
- TDefinition definition
- 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;
}