diff --git a/src/client.ts b/src/client.ts index ce3b9e14..6e298767 100644 --- a/src/client.ts +++ b/src/client.ts @@ -50,8 +50,7 @@ function getFilters(filters: Filter[], opts: GetFiltersOpts sig: event.sig, }); } - // HACK - if (filters.length === 1 && filters[0].limit && results.length >= filters[0].limit) { + if (typeof opts.limit === 'number' && results.length >= opts.limit) { unsub(); clearTimeout(tid); resolve(results as SignedEvent[]); diff --git a/src/types.ts b/src/types.ts index e3338180..096b847a 100644 --- a/src/types.ts +++ b/src/types.ts @@ -7,7 +7,10 @@ interface DittoFilter extends Filter { /** Additional options to apply to the whole subscription. */ interface GetFiltersOpts { + /** How long to wait (in milliseconds) until aborting the request. */ timeout?: number; + /** Event limit for the whole subscription. */ + limit?: number; } export type { DittoFilter, GetFiltersOpts };