loadAppSettings function

Future<OmniBootstrapData> loadAppSettings()

Loads all settings files in parallel; throws FormatException on malformed JSON.

Implementation

Future<OmniBootstrapData> loadAppSettings() async {
  final results = await Future.wait([
    rootBundle.loadString(userSettingsFilePath),
    rootBundle.loadString(appSettingsFilePath),
    rootBundle.loadString(blogSettingsFilePath),
    rootBundle.loadString(webrtcSettingsFilePath),
  ]);

  final userSettingsJson = json.decode(results[0]) as Map<String, dynamic>;
  final appSettingsJson = json.decode(results[1]) as Map<String, dynamic>;
  final blogSettingsJson = json.decode(results[2]) as List<dynamic>;
  final webrtcSettingsJson = json.decode(results[3]) as Map<String, dynamic>;

  final userSettings = UserSettings.fromJsonFile(userSettingsJson);
  final appSettings = AppSettings.fromJsonFile(appSettingsJson);

  final blogConfigs = blogSettingsJson
      .map((e) => BlogPageConfig.fromJsonFile(e as Map<String, dynamic>))
      .toList();

  final webrtcSettings = WebRTCSettings.fromJsonFile(webrtcSettingsJson);

  return (appSettings, userSettings, blogConfigs, webrtcSettings);
}