load<T> method

Future<T> load<T>(
  1. String path,
  2. T parse(
    1. Object? json
    )
)

path's JSON, decoded and handed to parse.

Implementation

Future<T> load<T>(String path, T Function(Object? json) parse) async {
  final String text;
  try {
    text = await _loadString(path);
  } catch (e) {
    developer.log(
      'Failed to load $path: $e',
      name: 'SettingsLoader',
      error: e,
    );
    rethrow;
  }
  try {
    return parse(json.decode(text));
  } catch (e) {
    developer.log(
      'Failed to parse $path: $e',
      name: 'SettingsLoader',
      error: e,
    );
    rethrow;
  }
}