From f1a781f82a920b26423e6a22ad820abda51212f7 Mon Sep 17 00:00:00 2001 From: David Luecke Date: Mon, 7 Oct 2019 12:13:48 -0700 Subject: [PATCH] fix: Check query for NaN (#1607) --- packages/adapter-commons/src/filter-query.ts | 2 +- packages/adapter-commons/test/filter-query.test.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/adapter-commons/src/filter-query.ts b/packages/adapter-commons/src/filter-query.ts index 2d2be325eb..89fdd48117 100644 --- a/packages/adapter-commons/src/filter-query.ts +++ b/packages/adapter-commons/src/filter-query.ts @@ -13,7 +13,7 @@ function parse (number: any) { // default and max pagination settings function getLimit (limit: any, paginate: any) { if (paginate && paginate.default) { - const lower = typeof limit === 'number' ? limit : paginate.default; + const lower = typeof limit === 'number' && !isNaN(limit) ? limit : paginate.default; const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE; return Math.min(lower, upper); diff --git a/packages/adapter-commons/test/filter-query.test.ts b/packages/adapter-commons/test/filter-query.test.ts index 8f5995121c..58b2925bd8 100644 --- a/packages/adapter-commons/test/filter-query.test.ts +++ b/packages/adapter-commons/test/filter-query.test.ts @@ -107,6 +107,12 @@ describe('@feathersjs/adapter-commons/filterQuery', () => { assert.strictEqual(filters.$limit, 10); assert.strictEqual(filtersNeg.$limit, 10); }); + + it('limits with default pagination when not a number', () => { + const { filters } = filterQuery({ $limit: 'something' }, { paginate: { default: 5, max: 10 } }); + + assert.strictEqual(filters.$limit, 5); + }); }); });