searchMetadatas method

  1. @override
Future<Iterable<Metadata>> searchMetadatas(
  1. String search,
  2. int limit
)
override

Search for metadata by name, nip05

Implementation

@override
Future<Iterable<Metadata>> searchMetadatas(String search, int limit) async {
  // Use a Set to track unique Metadata objects
  final Set<Metadata> uniqueResults = {};

  for (final metadata in metadatas.values) {
    if ((metadata.name != null && metadata.name!.contains(search)) ||
        (metadata.nip05 != null && metadata.nip05!.contains(search))) {
      uniqueResults.add(metadata);
    }
  }

  // Convert to list, sort by updatedAt, and take the limit
  final sortedResults = uniqueResults.toList()
    ..sort((a, b) => (b.updatedAt ?? 0).compareTo(a.updatedAt ?? 0));

  return sortedResults.take(limit);
}