From e4dc373d163e04a8b72091a3ce8190cd148687cd Mon Sep 17 00:00:00 2001 From: Scott Trinh Date: Fri, 27 Jul 2018 18:57:11 -0400 Subject: [PATCH] [knex] Allow Identifier Syntax in table Query Builder (#27644) --- types/knex/index.d.ts | 5 +++-- types/knex/knex-tests.ts | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/types/knex/index.d.ts b/types/knex/index.d.ts index 82dbb5f235..f6be274a30 100644 --- a/types/knex/index.d.ts +++ b/types/knex/index.d.ts @@ -21,9 +21,10 @@ type Value = string | number | boolean | Date | Array | Array | type ValueMap = { [key: string]: Value | Knex.QueryBuilder }; type ColumnName = string | Knex.Raw | Knex.QueryBuilder | {[key: string]: string }; type TableName = string | Knex.Raw | Knex.QueryBuilder; +type Identifier = { [alias: string]: string }; interface Knex extends Knex.QueryInterface { - (tableName?: TableName): Knex.QueryBuilder; + (tableName?: TableName | Identifier): Knex.QueryBuilder; VERSION: string; __knex__: string; @@ -179,7 +180,7 @@ declare namespace Knex { } interface Table { - (tableName: TableName): QueryBuilder; + (tableName: TableName | Identifier): QueryBuilder; (callback: Function): QueryBuilder; (raw: Raw): QueryBuilder; } diff --git a/types/knex/knex-tests.ts b/types/knex/knex-tests.ts index 89a120fac1..0c04dfc918 100644 --- a/types/knex/knex-tests.ts +++ b/types/knex/knex-tests.ts @@ -1103,3 +1103,23 @@ knex.schema table.decimal('dec', null); }) .dropTable('testTable'); + +// allow specifying an alias for a table name +knex.schema + .dropTableIfExists('foo') + .dropTableIfExists('bar') + .createTable('foo', function (table) { + table.uuid('id').primary(); + }) + .createTable('bar', function (table) { + table.uuid('id').primary(); + }); + +knex({ + table1: 'foo', + table2: 'bar' +}) + .select({ + table1Id: 'table1.id', + table2Id: 'table2.id' + });