load method

Implementation

Future<AppSettings> load() async {
  final file = File(_settingsPath);
  final dir = file.parent;
  if (!await file.exists()) {
    await dir.create(recursive: true);
    const defaults = AppSettings();
    await file.writeAsString(_toYaml(defaults));
    return defaults;
  }
  try {
    final content = await file.readAsString();
    final yaml = loadYaml(content) as YamlMap;
    return _fromYaml(yaml);
  } catch (_) {
    return const AppSettings();
  }
}