import Knex from '../types'; import { clientConfig, User, Department } from './common'; import { expectType } from 'tsd'; const knex = Knex(clientConfig); const main = async () => { expectType(await knex('users').select('id').select('age')); expectType(await knex('users').select('id').select('age').first()); expectType(await knex('users').first('id')); expectType( await knex.first('*').from('table').where({ whatever: 'whatever', }) ); expectType(await knex('users').first('id', 'name')); expectType(await knex('users').first('id', 'name')); expectType(await knex('users').first(knex.ref('id').as('identifier'))); expectType | undefined>( await knex('users').first('id') ); expectType | undefined>( await knex('users').first('id', 'name') ); expectType<{ identifier: number } | undefined>( await knex('users').first(knex.ref('id').as('identifier')) ); expectType<{ id: number; name: string }[]>( await knex('users').select([knex.ref('name'), knex.ref('id')]) ); expectType<{ id: number; name: string }[]>( await knex('users_inferred').select([knex.ref('name'), knex.ref('id')]) ); expectType<{ id: number; name: string }[]>( await knex('users_composite').select([knex.ref('name'), knex.ref('id')]) ); expectType | undefined>( await knex.first('id').from('users') ); expectType | undefined>( await knex.first('id', 'name').from('users') ); expectType<{ identifier: number } | undefined>( await knex.first(knex.ref('id').as('identifier')).from('users') ); expectType[]>(await knex('users').select('id')); expectType[]>( await knex('users').select('id').select('age') ); expectType[]>( await knex('users').select('id', 'age') ); expectType( await knex('users').joinRaw( `JOIN ( SELECT id FROM departments WHERE departments.departmentName = ANY(?) ) AS d ON d.id = users.id`, [['Name 1, Name 2']] ) ); knex.transaction(async (trx) => { expectType(await trx.select('*').from('users')); }); };