syncManagedGuardDefinitions<TContext, TResponse, TDefinition extends Object> function
Builds and synchronizes managed guard registrations from definitions.
Guard names are trimmed and definitions producing null are skipped. Each
built guard is registered unconditionally, so it replaces existing entries.
preserve may keep a stale registry entry while removing its name from
managed.
Implementation
Set<String>
syncManagedGuardDefinitions<TContext, TResponse, TDefinition extends Object>(
AuthGuardRegistry<TContext, TResponse> registry,
Map<String, TDefinition> definitions, {
required AuthGuard<TContext, TResponse>? Function(
String name,
TDefinition definition,
)
buildGuard,
required Set<String> managed,
Set<String> preserve = const <String>{},
}) {
final nextManaged = <String>{};
definitions.forEach((name, definition) {
final trimmed = name.trim();
if (trimmed.isEmpty) {
return;
}
final guard = buildGuard(trimmed, definition);
if (guard == null) {
return;
}
registry.register(trimmed, guard);
nextManaged.add(trimmed);
});
syncManagedGuards<TContext, TResponse>(
registry,
managed: managed,
nextManaged: nextManaged,
preserve: preserve,
);
return nextManaged;
}