@turkraft/filterkit-prisma
v1.0.0
Published
Prisma integration for FilterKit — convert filter expressions to Prisma where clauses.
Maintainers
Readme
FilterKit Prisma
Prisma integration for FilterKit. Convert filter expressions to Prisma where clauses.
import { toPrismaWhere } from '@turkraft/filterkit-prisma';
const where = toPrismaWhere("age > 18 and status in ['active', 'pending']");
// => { AND: [{ age: { gt: 18 } }, { status: { in: ['active', 'pending'] } }] }
const users = await prisma.user.findMany({ where });Install
npm install @turkraft/filterkit-prisma @turkraft/filterkitUsage
import { toPrismaWhere } from '@turkraft/filterkit-prisma';
const where = toPrismaWhere("name ~ '%John%' and deleted : false");
const users = await prisma.user.findMany({ where });Operator mapping
| FilterKit expression | Prisma where |
|---|---|
| field : 'val' | { field: 'val' } |
| field ! 'val' | { field: { not: 'val' } } |
| field > val | { field: { gt: val } } |
| field >: val | { field: { gte: val } } |
| field < val | { field: { lt: val } } |
| field <: val | { field: { lte: val } } |
| field ~ '%val%' | { field: { contains: 'val' } } |
| field ~ 'val%' | { field: { startsWith: 'val' } } |
| field ~ '%val' | { field: { endsWith: 'val' } } |
| field ~~ '%val%' | { field: { contains: 'val', mode: 'insensitive' } } |
| field in ['a', 'b'] | { field: { in: ['a', 'b'] } } |
| field not in ['a', 'b'] | { field: { notIn: ['a', 'b'] } } |
| field is null | { field: null } |
| field is not null | { field: { not: null } } |
| field is empty | { field: '' } |
| field is not empty | { field: { not: '' } } |
| field between a and b | { field: { gte: a, lte: b } } |
| a and b | { AND: [a, b] } |
| a or b | { OR: [a, b] } |
| not a | { NOT: a } |
| a xor b | (a AND NOT b) OR (NOT a AND b) |
Sponsors
Sponsor our project and have your issues prioritized.
License
MIT
