@hexa-framework/adapter-prisma
v1.0.0
Published
Prisma database adapter for Hexa Framework
Maintainers
Readme
@hexa/adapter-prisma
Prisma database adapter for Hexa Framework.
Installation
npm install @hexa/adapter-prisma @prisma/client
npm install prisma --save-devUsage
Setup Adapter
import { PrismaAdapter, createPrismaAdapter } from '@hexa/adapter-prisma';
// Create adapter
const adapter = createPrismaAdapter({
url: process.env.DATABASE_URL,
log: ['error', 'warn'],
});
// Connect
await adapter.connect();
// Get Prisma client
const prisma = adapter.getClient();
// Disconnect on shutdown
await adapter.disconnect();Create Repository
import { BasePrismaRepository } from '@hexa/adapter-prisma';
import { IBaseEntity } from '@hexa/common';
import { PrismaClient } from '@prisma/client';
interface User extends IBaseEntity {
id: number;
email: string;
username: string;
password: string;
}
class UserRepository extends BasePrismaRepository<User> {
protected modelName = 'user';
constructor(prisma: PrismaClient) {
super(prisma);
}
// Add custom methods
async findByEmail(email: string): Promise<User | null> {
return this.model.findFirst({
where: { email, isActive: true, deletedAt: null },
});
}
}
// Usage
const userRepo = new UserRepository(prisma);
const users = await userRepo.getAll({
pagination: { page: 1, limit: 10 }
});API
PrismaAdapter
connect()- Connect to databasedisconnect()- Disconnect from databasegetClient()- Get Prisma client instanceisConnected()- Check connection status
BasePrismaRepository
getById(id)- Get entity by IDgetAll(options)- Get all with pagination, search, filterscreate(item)- Create new entityupdate(id, item)- Update entitysoftDelete(id)- Soft delete (sets isActive=false)hardDelete(id)- Permanent deletecreateMany(items)- Bulk createcount(filters)- Count with filtersexists(id)- Check if exists
