readFlkitManifestLanguages function

List<String> readFlkitManifestLanguages(
  1. Directory projectDirectory
)

Implementation

List<String> readFlkitManifestLanguages(Directory projectDirectory) {
  final manifest = File(p.join(projectDirectory.path, 'flkit.yaml'));
  if (!manifest.existsSync()) return const [];

  final yaml = _tryLoadYaml(manifest);
  if (yaml is! YamlMap) return const [];

  final flkit = yaml['flkit'];
  if (flkit is! YamlMap) return const [];

  final locales = flkit['locales'];
  if (locales is! YamlMap) return const [];

  final supported = locales['supported'];
  if (supported is! YamlList) return const [];

  return supported.whereType<String>().toList()..sort();
}