From 176ca8dd9b31c7ef6ea95d6361f2037be7069bde Mon Sep 17 00:00:00 2001 From: Tdanks2000 <40835340+TDanks2000@users.noreply.github.com> Date: Mon, 10 Aug 2026 03:45:07 +0100 Subject: [PATCH 1/3] fix: enforce IGDB multi-query limit --- src/query/MultiQueryBuilder.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/query/MultiQueryBuilder.ts b/src/query/MultiQueryBuilder.ts index 70dcbdf..1c89bd6 100644 --- a/src/query/MultiQueryBuilder.ts +++ b/src/query/MultiQueryBuilder.ts @@ -88,6 +88,12 @@ export class MultiQueryBuilder { build: QueryFactory, count: boolean, ): MultiQueryBuilder { + if (this.#blocks.length >= 10) { + throw new IGDBValidationError( + "multi-query supports at most 10 queries per IGDB request", + ); + } + const normalizedName = name.trim(); if (!normalizedName) { throw new IGDBValidationError("multi-query name is required"); From e402d9a8488985d7e0298e9cf610e513fcb12504 Mon Sep 17 00:00:00 2001 From: Tdanks2000 <40835340+TDanks2000@users.noreply.github.com> Date: Mon, 10 Aug 2026 03:45:18 +0100 Subject: [PATCH 2/3] test: cover multi-query maximum --- src/__tests__/multi-query-limit.test.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/__tests__/multi-query-limit.test.ts diff --git a/src/__tests__/multi-query-limit.test.ts b/src/__tests__/multi-query-limit.test.ts new file mode 100644 index 0000000..d5307b7 --- /dev/null +++ b/src/__tests__/multi-query-limit.test.ts @@ -0,0 +1,20 @@ +import { describe, expect, test } from "bun:test"; +import { IGDBValidationError } from "../errors"; +import { MultiQueryBuilder } from "../query/MultiQueryBuilder"; + +describe("MultiQueryBuilder limits", () => { + test("allows at most the 10 queries supported by IGDB", () => { + let builder = new MultiQueryBuilder(); + + for (let index = 0; index < 10; index++) { + builder = builder.query("games", `query-${index}`, (query) => + query.limit(1), + ); + } + + expect(builder.inspect().blocks).toHaveLength(10); + expect(() => + builder.query("games", "query-10", (query) => query.limit(1)), + ).toThrow(IGDBValidationError); + }); +}); From 2ebda7274ab7f4986e5f4bee78cdfa79e19a58e0 Mon Sep 17 00:00:00 2001 From: Tdanks2000 <40835340+TDanks2000@users.noreply.github.com> Date: Mon, 10 Aug 2026 03:45:22 +0100 Subject: [PATCH 3/3] chore: add multi-query limit changeset --- .changeset/enforce-multiquery-limit.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/enforce-multiquery-limit.md diff --git a/.changeset/enforce-multiquery-limit.md b/.changeset/enforce-multiquery-limit.md new file mode 100644 index 0000000..f122334 --- /dev/null +++ b/.changeset/enforce-multiquery-limit.md @@ -0,0 +1,5 @@ +--- +"@api-wrappers/igdb-wrapper": patch +--- + +Reject typed multi-query builders that exceed IGDB's maximum of 10 query blocks per request.