readFontSource function
The google_fonts package that packageConfig resolves.
Implementation
FontSource readFontSource(File packageConfig) {
final config = jsonDecode(packageConfig.readAsStringSync()) as Map;
final entry = (config['packages'] as List).cast<Map>().singleWhere(
(entry) => entry['name'] == 'google_fonts',
);
final directory = Directory.fromUri(
packageConfig.absolute.uri.resolve(entry['rootUri'] as String),
);
final pubspec = File('${directory.path}/pubspec.yaml').readAsStringSync();
final version = RegExp(
r'^version: (\S+)',
multiLine: true,
).firstMatch(pubspec)!.group(1)!;
final source = File('${directory.path}/lib/src/google_fonts_lite.dart')
.readAsStringSync();
return FontSource(
directory,
version,
sha256.convert(utf8.encode(source)).toString(),
parseLiteDescriptors(source),
);
}