loadCatalogBootstrapConfig function

Future<CatalogBootstrapConfig> loadCatalogBootstrapConfig()

Implementation

Future<CatalogBootstrapConfig> loadCatalogBootstrapConfig() async {
  final bootstrapUri = Uri.base.resolve('catalog-bootstrap.json');
  final client = DefaultHttpClient();
  try {
    final response = await client.get(bootstrapUri);
    final payload = response.body.trim().isEmpty
        ? <String, dynamic>{}
        : Map<String, dynamic>.from(jsonDecode(response.body) as Map);
    if (response.statusCode < 200 || response.statusCode >= 300) {
      throw CatalogClientException(payload['error']?.toString() ?? 'Could not load catalog bootstrap.');
    }
    return CatalogBootstrapConfig.fromJson(payload);
  } finally {
    client.close();
  }
}