import Knex from '../types'; import { expectError, expectType } from 'tsd'; import { clientConfig } from './common'; const knex = Knex(clientConfig); // Use: // import Knex from 'knex' // when "esModuleInterop": true const main = async () => { // default returning is number[] expectType( await knex.batchInsert('table', [{ a: 2, id: 3 }] as const, 12) ); // allows any data expectType( await knex .batchInsert('table', [{ a: 2, id: 3 }] as any[], 12) .returning('abc') ); // allows any data expectType( await knex .batchInsert('table', [{ a: 2, id: 3 }] as any, 12) .returning('abc') ); // returning '*' allowed, return full record expectType>( await knex.batchInsert('table', [{ a: false, id: 3 }], 12).returning('*') ); // one column for returning expectType>( await knex .batchInsert('table', [{ aa2: 'string', b: 3 }], 12) .returning('aa2') ); // many columns for returning expectType>( await knex .batchInsert('table', [{ aa2: 'string', b: false, c: 12 }], 12) .returning(['aa2', 'b']) ); // assert bad column in returning gives error expectError( knex .batchInsert('table', [{ aa2: 'string', b: false, c: 12 }], 12) .returning('bad_column') ); // assert any bad column from returning list gives error expectError( knex .batchInsert('table', [{ aa2: 'string', b: false, c: 12 }], 12) .returning(['aa2', 'bad_column'] as const) ); // validates insert data expectError( knex.batchInsert<{ aa2: string; c: number }>( 'table', [{ aa2: 'string', b: false, c: 12 }], 12 ) ); expectType( await knex .batchInsert('table', [{ a: 2, id: 3 }] as const, 12) .transacting(await knex.transaction()) ); };