surahMetadata property

List<QuranVerse> get surahMetadata

Implementation

List<QuranVerse> get surahMetadata {
  if (!_isLoaded) return [];

  // We lazily parse Surah 1 verse 1 for each Surah to get the metadata
  // (surahName, surahNameEn, etc.) without parsing the whole Surah.
  if (_fallbackMetadata.isEmpty && _service.rawJson != null) {
    final raw = _service.rawJson!;
    final versesMap = (raw['verses'] as Map<String, dynamic>?) ?? raw;
    final ruleNames = raw['rule_names'] as Map<String, dynamic>?;

    for (int i = 1; i <= 114; i++) {
      final key = '$i:1';
      final obj = versesMap[key];
      if (obj != null) {
        _fallbackMetadata.add(
          QuranVerse.fromJson(
            i,
            1,
            obj as Map<String, dynamic>,
            globalRuleNames: ruleNames,
          ),
        );
      }
    }
  }
  return _fallbackMetadata;
}