kysely-mapper
Version:
Flexible Kysely-based utility for mapping between tables and objects
26 lines • 2.07 kB
TypeScript
import { Kysely, InsertQueryBuilder, InsertResult, Insertable } from 'kysely';
import { SelectionColumn } from '../lib/type-utils.js';
import { MappingInsertQuery } from './insert-query.js';
import { CompilingMappingInsertQuery } from './compiling-insert-query.js';
import { InsertTransforms } from '../mappers/table-mapper-transforms.js';
/**
* Mapping query for inserting rows into a database table,
* inserting a specified subset of the insertable columns.
*/
export declare class SubsettingMappingInsertQuery<DB, TB extends keyof DB & string, QB extends InsertQueryBuilder<DB, TB, InsertResult>, InsertedObject, InsertReturnColumns extends Readonly<SelectionColumn<DB, TB>[]> | ['*'], InsertReturn> extends MappingInsertQuery<DB, TB, QB, InsertedObject, InsertReturnColumns, InsertReturn> {
protected readonly columnsToInsert: Readonly<(keyof Insertable<DB[TB]> & string)[]>;
constructor(db: Kysely<DB>, qb: QB, columnsToInsert: Readonly<(keyof Insertable<DB[TB]> & string)[]>, transforms: Readonly<InsertTransforms<DB, TB, InsertedObject, InsertReturnColumns, InsertReturn>>, returnColumns: Readonly<InsertReturnColumns>);
/**
* Returns a compiling query that can be executed multiple times with
* different parameters (if any parameters were provided), but which only
* compiles the underlying Kysely query builder on the first execution.
* Frees the query builder on the first execution to reduce memory usage.
* @typeParam Parameters Record characterizing the parameter names and
* types that were previously embedded in the query, if any.
* @returns A compiling insert query.
*/
compile(): CompilingMappingInsertQuery<DB, TB, QB, InsertedObject, InsertReturnColumns, InsertReturn>;
protected getInsertColumns(): Readonly<(keyof Insertable<DB[TB]> & string)[]> | ['*'];
protected setColumnValues(qb: InsertQueryBuilder<DB, TB, InsertResult>, objOrObjs: Insertable<DB[TB]> | Insertable<DB[TB]>[]): InsertQueryBuilder<DB, TB, InsertResult>;
}
//# sourceMappingURL=subsetting-insert-query.d.ts.map