PubspecConfig.load constructor

PubspecConfig.load()

Implementation

factory PubspecConfig.load() {
  final file = Project().getPubspecFile()!;
  final fileContent = file.readAsStringSync();
  final pubspecYaml = yaml.loadYaml(fileContent) as yaml.YamlMap;
  final name = pubspecYaml['name'];
  final pubspecFonts = pubspecYaml['flutter']['fonts'] as yaml.YamlList;
  final fonts = pubspecFonts
      .map(
        (font) => Font(
          font['family'],
          (font['fonts'] as yaml.YamlList)
              .map((x) => x['asset'] as String)
              .toList(),
        ),
      )
      .toList();

  final flutterIconsConfig = pubspecYaml['flutter_icons'];
  if (flutterIconsConfig == null) {
    throw Exception('Add to pubspec.yaml flutter_icons section');
  }

  return PubspecConfig(
    name,
    fonts,
    flutterIconsConfig['output_dir'],
    flutterIconsConfig['project'],
    flutterIconsConfig['host'],
    flutterIconsConfig['temp'],
    flutterIconsConfig['class-name'],
  );
}