Ndb+.swift (1074B)
1 // 2 // Ndb+.swift 3 // damus 4 // 5 // Created by Daniel D’Aquino on 2025-04-04. 6 // 7 8 /// ## Implementation notes 9 /// 10 /// 1. This was created as a separate file because it contains dependencies to damus-specific structures such as `NostrFilter`, which is not yet available inside the NostrDB codebase. 11 12 import Foundation 13 14 extension Ndb { 15 /// Subscribe to events matching the provided NostrFilters 16 /// - Parameters: 17 /// - filters: Array of NostrFilter objects 18 /// - maxSimultaneousResults: Maximum number of initial results to return 19 /// - Returns: AsyncStream of StreamItem events 20 /// - Throws: NdbStreamError if subscription fails 21 func subscribe(filters: [NostrFilter], maxSimultaneousResults: Int = 1000) throws(NdbStreamError) -> AsyncStream<StreamItem> { 22 let ndbFilters: [NdbFilter] 23 do { 24 ndbFilters = try filters.toNdbFilters() 25 } catch { 26 throw .cannotConvertFilter(error) 27 } 28 return try self.subscribe(filters: ndbFilters, maxSimultaneousResults: maxSimultaneousResults) 29 } 30 }