From dbd06fd41d9bb2eb9859dd4ebcdd20a2bf1d442d Mon Sep 17 00:00:00 2001 From: Oli Juhl <59018053+olivermrbl@users.noreply.github.com> Date: Thu, 20 Feb 2025 03:04:48 +0800 Subject: [PATCH] fix(utils): Handle 0 correctly in build query (#11525) **What** Remove truthy/falsy check for `take` and `skip` **Why** To ensure `{ take: 0, skip: 0 }` is not converted to `{ take: undefined, skip: undefined }` --- .../src/modules-sdk/__tests__/build-query.spec.ts | 12 ++++++++++++ packages/core/utils/src/modules-sdk/build-query.ts | 10 ++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/core/utils/src/modules-sdk/__tests__/build-query.spec.ts b/packages/core/utils/src/modules-sdk/__tests__/build-query.spec.ts index 6c9623faaf..b30c3c994f 100644 --- a/packages/core/utils/src/modules-sdk/__tests__/build-query.spec.ts +++ b/packages/core/utils/src/modules-sdk/__tests__/build-query.spec.ts @@ -64,6 +64,18 @@ describe("buildQuery", () => { }) }) + test("should build pagination with values of 0", () => { + const config: FindConfig = { + take: 0, + skip: 0, + } + const result = buildQuery({}, config) + expect(result.options).toMatchObject({ + limit: 0, + offset: 0, + }) + }) + test("should handle withDeleted flag", () => { const filters = { deleted_at: "some-value" } const result = buildQuery(filters) diff --git a/packages/core/utils/src/modules-sdk/build-query.ts b/packages/core/utils/src/modules-sdk/build-query.ts index cb66b6a604..315ede012e 100644 --- a/packages/core/utils/src/modules-sdk/build-query.ts +++ b/packages/core/utils/src/modules-sdk/build-query.ts @@ -25,8 +25,14 @@ export function buildQuery( const findOptions: DAL.FindOptions["options"] = { populate: deduplicate(config.relations ?? []), fields: config.select as string[], - limit: (Number.isSafeInteger(config.take) && config.take) || undefined, - offset: (Number.isSafeInteger(config.skip) && config.skip) || undefined, + limit: + Number.isSafeInteger(config.take) && config.take != null + ? config.take + : undefined, + offset: + Number.isSafeInteger(config.skip) && config.skip != null + ? config.skip + : undefined, } if (config.order) {