diff --git a/src/db/events.ts b/src/db/events.ts index 31ff6f9..cb04b23 100644 --- a/src/db/events.ts +++ b/src/db/events.ts @@ -106,14 +106,15 @@ function getFilterQuery(filter: DittoFilter) { /** Get events for filters from the database. */ async function getFilters( filters: DittoFilter[], - _opts?: GetFiltersOpts, + opts: GetFiltersOpts = {}, ): Promise[]> { - const events = await filters - .map(getFilterQuery) - .reduce((acc, curr) => acc.union(curr)) - .execute(); + let query = filters.map(getFilterQuery).reduce((acc, curr) => acc.union(curr)); - return events.map((event) => ( + if (typeof opts.limit === 'number') { + query = query.limit(opts.limit); + } + + return (await query.execute()).map((event) => ( { ...event, tags: JSON.parse(event.tags) } as Event )); }