readFontSource function

FontSource readFontSource(
  1. File packageConfig
)

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),
  );
}