[BUG] Boolean but get Number
Closed this issue · 1 comments
VienDinhCom commented
Environment
- Node: 18.16.1
- NPM: 9.5.1
- Prisma: 4.16.2
- Kysely: 0.26.1
- Prisma Kysely: 1.5.0
Schema
datasource db {
provider = "sqlite"
url = "file:data/data.sqlite"
}
generator kysely {
provider = "prisma-kysely"
output = "."
fileName = "schema.ts"
}
model User {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
email String @unique
verified Boolean
image String
}
Types
import type { ColumnType } from 'kysely';
export type Generated<T> = T extends ColumnType<infer S, infer I, infer U>
? ColumnType<S, I | undefined, U>
: ColumnType<T, T | undefined, T>;
export type Timestamp = ColumnType<Date, Date | string, Date | string>;
export type User = {
id: string;
createdAt: Generated<string>;
updatedAt: string;
name: string;
email: string;
verified: number; // [BUG] This must be boolean
image: string;
};
export type DB = {
User: User;
};
valtyr commented
In SQLite booleans are numeric types, and most TS SQLite drivers respect that (including better-sqlite3
, the recommended driver for Kysely). If your driver returns actual booleans for some reason, you can set an override in your schema:
generator kysely {
provider = "prisma-kysely"
output = "."
fileName = "schema.ts"
// ⬇️ This line here
booleanTypeOverride = "boolean"
}
prisma-kysely
assumes you're using the most common driver for each dialect. That's the best we can do 🤷♂️