app property

ServerApp? get app

Implementation

ServerApp? get app {
  if (apps.isEmpty) {
    throw Exception('No apps found');
  }

  final flavor = context.flavor;
  final configuredApps = apps.where((app) => !_isDefaultApp(app)).toList();
  final candidates = configuredApps.isNotEmpty ? configuredApps : apps;

  if (candidates.length == 1) {
    final only = candidates.first;
    if (flavor == null ||
        flavor.isEmpty ||
        only.appAnnotation.flavor == flavor) {
      return only;
    }
  }

  for (final app in candidates) {
    if (app.appAnnotation.flavor == context.flavor) {
      return app;
    }
  }

  return null;
}