const prisma = (() => {
switch (process.env.DATABASE_PROVIDER) {
case 'postgresql':
return new PrismaClientPostgresql({
adapter: new PrismaPg({
connectionString: process.env.DATABASE_URL,
}),
});
case 'sqlite':
return new PrismaClientSqlite({
adapter: new PrismaBetterSQLite3({
url: process.env.DATABASE_URL,
}),
});
default:
throw new Error(
`Unsupported DATABASE_PROVIDER: ${process.env.DATABASE_PROVIDER}`
);
}
})();
// Works fine
await prisma.user.create({ data: { name: 'test', email: '' } });
// Type error:
/*
This expression is not callable.
Each member of the union type '(<T extends UserFindUniqueArgs>(args: SelectSubset<T, UserFindUniqueArgs<DefaultArgs>>) => Prisma__UserClient<GetFindResult<$UserPayload<DefaultArgs>, T, { ...; }> | null, null, DefaultArgs, { ...; }>) | (<T extends UserFindUniqueArgs>(args: SelectSubset<...>) => Prisma__UserClient<...>)' has signatures, but none of those signatures are compatible with each other.ts(2349)*/
await prisma.user.findUnique({});
const prisma = (() => {
switch (process.env.DATABASE_PROVIDER) {
case 'postgresql':
return new PrismaClientPostgresql({
adapter: new PrismaPg({
connectionString: process.env.DATABASE_URL,
}),
});
case 'sqlite':
return new PrismaClientSqlite({
adapter: new PrismaBetterSQLite3({
url: process.env.DATABASE_URL,
}),
});
default:
throw new Error(
`Unsupported DATABASE_PROVIDER: ${process.env.DATABASE_PROVIDER}`
);
}
})();
// Works fine
await prisma.user.create({ data: { name: 'test', email: '' } });
// Type error:
/*
This expression is not callable.
Each member of the union type '(<T extends UserFindUniqueArgs>(args: SelectSubset<T, UserFindUniqueArgs<DefaultArgs>>) => Prisma__UserClient<GetFindResult<$UserPayload<DefaultArgs>, T, { ...; }> | null, null, DefaultArgs, { ...; }>) | (<T extends UserFindUniqueArgs>(args: SelectSubset<...>) => Prisma__UserClient<...>)' has signatures, but none of those signatures are compatible with each other.ts(2349)*/
await prisma.user.findUnique({});