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())); };