Tags
Typescript
Project date
October 4, 2023
Created
Oct 4, 2023 1:08 PM
TypeORM совсем не обеспечивает типо-безопасность и не позволяет писать эффективные запросы.
Один из хороших альтернатив писать либо чистые запросы с интроспекцией схемы
Kysely умеет генерировать схемы существующей бд через kysely-codegen
export interface History {
id: Generated<number>;
createdAt: Generated<Timestamp>;
updatedAt: Generated<Timestamp>;
name: string;
}
синтаксис очень похожий к sql
const persons = await db.selectFrom('person')
.select(({ eb, selectFrom, or }) => [
// Select a correlated subquery
selectFrom('pet')
.whereRef('person.id', '=', 'pet.owner_id')
.select('pet.name')
.orderBy('pet.name')
.limit(1)
.as('first_pet_name'),
// Build and select an expression using
// the expression builder
or([
eb('first_name', '=', 'Jennifer'),
eb('first_name', '=', 'Arnold')
]).as('is_jennifer_or_arnold'),
// Select a raw sql expression
sql<string>`concat(first_name, ' ', last_name)`.as('full_name')
])
.execute()