25 lines
550 B
TypeScript
25 lines
550 B
TypeScript
'use server';
|
|
import { PrismaClient } from '@repo/db';
|
|
|
|
export const getData = async (
|
|
prismaModelName: keyof PrismaClient,
|
|
take: number,
|
|
skip: number
|
|
) => {
|
|
const prisma = new PrismaClient();
|
|
if (
|
|
!prismaModelName ||
|
|
!prisma[prismaModelName] ||
|
|
!('findMany' in prisma[prismaModelName])
|
|
)
|
|
return;
|
|
const model = prisma[prismaModelName] as any;
|
|
if (!model.findMany || !model.count) return;
|
|
const data = await model.findMany({
|
|
take,
|
|
skip,
|
|
});
|
|
const total = await model.count();
|
|
return { data, total };
|
|
};
|