init<T extends Auth<AuthKeys>> static method

Future<void> init<T extends Auth<AuthKeys>>({
  1. required AuthDelegate delegate,
  2. required AuthBackupDelegate<T> backup,
  3. AuthMessages msg = const AuthMessages(),
  4. bool initialCheck = true,
  5. bool listening = false,
})

Implementation

static Future<void> init<T extends Auth>({
  required AuthDelegate delegate,
  required AuthBackupDelegate<T> backup,
  AuthMessages msg = const AuthMessages(),
  bool initialCheck = true,
  bool listening = false,
}) async {
  while (_ioLock != null) {
    await _ioLock;
  }
  final completer = Completer<void>();
  _ioLock = completer.future;
  try {
    final prev = _i;
    if (prev != null) {
      try {
        prev.dispose();
      } catch (_) {}
    }
    final created = Authorizer<T>(
      delegate: delegate,
      backup: backup,
      msg: msg,
    );
    _i = created;
    await created.initialize(
      initialCheck: initialCheck,
      listening: listening,
    );
  } finally {
    completer.complete();
    if (_ioLock == completer.future) _ioLock = null;
  }
}