From 12be6e51b75212221322a8d078c293abe0aa06da Mon Sep 17 00:00:00 2001 From: Scott Trinh Date: Thu, 2 Aug 2018 14:26:48 -0400 Subject: [PATCH 1/2] [knex] Allow QueryBuilder in union parameters --- types/knex/index.d.ts | 6 +++--- types/knex/knex-tests.ts | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/types/knex/index.d.ts b/types/knex/index.d.ts index fe8d46658a..8ef03fa704 100644 --- a/types/knex/index.d.ts +++ b/types/knex/index.d.ts @@ -312,9 +312,9 @@ declare namespace Knex { } interface Union { - (callback: QueryCallback, wrap?: boolean): QueryBuilder; - (callbacks: QueryCallback[], wrap?: boolean): QueryBuilder; - (...callbacks: QueryCallback[]): QueryBuilder; + (callback: QueryCallback | QueryBuilder, wrap?: boolean): QueryBuilder; + (callbacks: (QueryCallback | QueryBuilder)[], wrap?: boolean): QueryBuilder; + (...callbacks: (QueryCallback | QueryBuilder)[]): QueryBuilder; // (...callbacks: QueryCallback[], wrap?: boolean): QueryInterface; } diff --git a/types/knex/knex-tests.ts b/types/knex/knex-tests.ts index 329ed9d414..0037948415 100644 --- a/types/knex/knex-tests.ts +++ b/types/knex/knex-tests.ts @@ -1145,3 +1145,19 @@ knex('characters') .whereIn(['name', 'class'], function() { this.select('name', 'class').from('characters'); }); + +knex('characters') + .select() + .where({ name: 'Bar', class: 'Fighter' }) + .union(knex('characters').select().where({ name: 'Foo', class: 'Druid' })); +knex('characters') + .select() + .where({ name: 'Bar', class: 'Fighter' }) + .union([knex('characters').select().where({ name: 'Foo', class: 'Druid' })]); +knex('characters') + .select() + .where({ name: 'Bar', class: 'Fighter' }) + .union( + knex('characters').select().where({ name: 'Foo', class: 'Druid' }), + knex('characters').select().where({ name: 'Baz', class: 'Paladin' }) + ); From d6504f702ad5b9d60f4c65ca2f7fd8c82ec0b50d Mon Sep 17 00:00:00 2001 From: Scott Trinh Date: Thu, 2 Aug 2018 15:24:58 -0400 Subject: [PATCH 2/2] Add Raw to union argument type-union --- types/knex/index.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/types/knex/index.d.ts b/types/knex/index.d.ts index 8ef03fa704..c1fb224fa0 100644 --- a/types/knex/index.d.ts +++ b/types/knex/index.d.ts @@ -312,9 +312,9 @@ declare namespace Knex { } interface Union { - (callback: QueryCallback | QueryBuilder, wrap?: boolean): QueryBuilder; - (callbacks: (QueryCallback | QueryBuilder)[], wrap?: boolean): QueryBuilder; - (...callbacks: (QueryCallback | QueryBuilder)[]): QueryBuilder; + (callback: QueryCallback | QueryBuilder | Raw, wrap?: boolean): QueryBuilder; + (callbacks: (QueryCallback | QueryBuilder | Raw)[], wrap?: boolean): QueryBuilder; + (...callbacks: (QueryCallback | QueryBuilder | Raw)[]): QueryBuilder; // (...callbacks: QueryCallback[], wrap?: boolean): QueryInterface; }