import { Prisma, PrismaClient } from '@prisma/client';
import prismaCache from '../utils/prisma-cache';
import { withOptimize } from '@prisma/extension-optimize';
import envConfig from './env.config';
const cacheManager = Prisma.defineExtension((client) => {
return client.$extends({
query: {
$allModels: {
async $allOperations({ model, operation, args, query }) {
const result = await query(args);
prismaCache.cachePrismaUserAllowedCountries(model, operation);
return result;
},
},
},
});
});
const prisma = new PrismaClient()
.$extends(cacheManager)
.$extends(withOptimize({ apiKey: envConfig.OPTIMIZE_API_KEY }));
export default prisma;
import { Prisma, PrismaClient } from '@prisma/client';
import prismaCache from '../utils/prisma-cache';
import { withOptimize } from '@prisma/extension-optimize';
import envConfig from './env.config';
const cacheManager = Prisma.defineExtension((client) => {
return client.$extends({
query: {
$allModels: {
async $allOperations({ model, operation, args, query }) {
const result = await query(args);
prismaCache.cachePrismaUserAllowedCountries(model, operation);
return result;
},
},
},
});
});
const prisma = new PrismaClient()
.$extends(cacheManager)
.$extends(withOptimize({ apiKey: envConfig.OPTIMIZE_API_KEY }));
export default prisma;