Nestjs-paginate is a pagination and filtering helper for the Nest.js framework that works with TypeORM repositories or query builders. It provides JSON:API style paginated responses, supporting sorting by multiple columns, search, column selection, and various filter operators, including cursor-based pagination.
Project status
- Actively maintained, with the most recent upstream update on 2026-08-12, and multiple tagged updates in early July 2026 (v15.0.0 and v15.0.1), suggesting ongoing work rather than a dormant state.
- Update cadence appears active and bursty, with two v15.x updates within the same day range (v15.0.0 on 2026-07-07 and a follow-up patch v15.0.1 on 2026-07-07), plus a prior minor update on 2026-07-02.
AI summary generated
Recent updates
v15.0.1
v15.0.1 is a small patch release focused on a test reliability fix. The release notes describe making the MariaDB test datasource timezone independent by pinning it to UTC.
v15.0.0
v15.0.0 introduces a new `filter=` boolean expression language, including support for polymorphic filtering syntax using `~`, and removes the previous per-column `$and`/`$or` multi-filter approach. It also removes `PaginateConfig.maxAndValues` in favor of a new expression-complexity cap.
BreakingFeaturesv14.0.0
v14.0.0 primarily upgrades TypeORM to v1.0.0 with a breaking configuration change for how `PaginateConfig.relations` is expressed. In the implementation, there are also non-trivial internal changes to how relation filters are turned into SQL (EXISTS subqueries and join scoping), plus a driver-specific change for sqlite date handling.
Breakingv13.5.1
v13.5.1 is a targeted bug fix aimed at enabling filtering on Postgres `json` columns, not only `jsonb`. The code changes expand the JSON-type handling and update the internal path resolution so JSON key paths in filter strings are interpreted correctly.
v13.5.0
v13.5.0 introduces an opt-in PaginateConfig.optimizedCount option intended to make COUNT queries cheaper when many relations are joined for hydration. The implementation adds a new helper, buildOptimizedCountQuery, that prunes unneeded joins from the count query and is used automatically when optimizedCount is enabled.
Featuresv13.4.0
v13.4.0 introduces polymorphic sorting using a `~` syntax across multiple columns. The implementation translates grouped sort terms into a SQL `COALESCE(colA, colB, ...)` expression to sort by the first non-NULL value.
BreakingFeaturesv13.3.0
v13.3.0 introduces an opt-in behavior to validate filter query params and throw a 400 BadRequestException instead of silently ignoring invalid filter inputs. The behavior is controlled by a new PaginateConfig option, and tests and README were updated to reflect the new option.
Featuresv13.2.0
v13.2.0 introduces an AND-mode for to-many relationship filtering (one-to-many and many-to-many) so a parent must match all specified related values. The implementation adds per-value correlated EXISTS subqueries that get ANDed on the outer query.
BreakingFeaturesv13.1.0
v13.1.0 adds support for filtering across ManyToMany relations when generating EXISTS subqueries. The change updates the SQL correlation logic used by the filter builder and adds test coverage for both owning-side and inverse-side ManyToMany properties.
Featuresv13.0.0
v13.0.0 changes how this library builds queries for to-many relationship filtering, moving from JOIN-based filtering to EXISTS subqueries (and likely NOT EXISTS for negation). Release notes document the behavioral impact of this switch. The code diff also shows additional changes around new filter quantifier syntax and several exported API/signature adjustments that are not called out in the release notes.
Breaking