Optimize in a Constructor
I use prisma in a nest.js api and instantiate a globally used version in a constructor - I've been trying to get optimize to work, and while the console log says it is set up and good to go, no data ever flows through. It looks like this - any idea what I'm doing wrong, or how to do this correctly?
export class ApiCoreDataAccessService extends PrismaClient implements OnModuleInit, OnModuleDestroy {
public queryCount: number
constructor() {
const config: any = {
datasources: {
db: { url: `${process.env.DATABASE_URL}?connection_limit=30` },
},
log: [
{
emit: 'event',
level: 'query',
},
],
}
console.log('process.env.DATABASE_URL', process.env.DATABASE_URL)
super(config)
this.queryCount = 0
console.log('Initializing Prisma Optimize...')
try {
this.$extends(
withOptimize({
apiKey: process.env.OPTIMIZE_API_KEY,
}),
)
console.log('Prisma Optimize extension initialized successfully')
} catch (error) {
console.error('Failed to initialize Prisma Optimize:', error)
}
}
public async onModuleDestroy(): Promise<void> {
await this.$disconnect()
}
public async onModuleInit(): Promise<void> {
await this.$connect()
if (process.env.LOG_PRISMA_QUERIES === 'true') {
this.$on('query' as never, async (e: Prisma.QueryEvent) => {
console.log(`QUERY: ${e.query} \n\nPARAMS: ${e.params}\n\n\n`)
})
}
if (process.env.COUNT_PRISMA_QUERIES === 'true') {
this.$on('query' as never, async () => {
this.queryCount++
})
}
}
}export class ApiCoreDataAccessService extends PrismaClient implements OnModuleInit, OnModuleDestroy {
public queryCount: number
constructor() {
const config: any = {
datasources: {
db: { url: `${process.env.DATABASE_URL}?connection_limit=30` },
},
log: [
{
emit: 'event',
level: 'query',
},
],
}
console.log('process.env.DATABASE_URL', process.env.DATABASE_URL)
super(config)
this.queryCount = 0
console.log('Initializing Prisma Optimize...')
try {
this.$extends(
withOptimize({
apiKey: process.env.OPTIMIZE_API_KEY,
}),
)
console.log('Prisma Optimize extension initialized successfully')
} catch (error) {
console.error('Failed to initialize Prisma Optimize:', error)
}
}
public async onModuleDestroy(): Promise<void> {
await this.$disconnect()
}
public async onModuleInit(): Promise<void> {
await this.$connect()
if (process.env.LOG_PRISMA_QUERIES === 'true') {
this.$on('query' as never, async (e: Prisma.QueryEvent) => {
console.log(`QUERY: ${e.query} \n\nPARAMS: ${e.params}\n\n\n`)
})
}
if (process.env.COUNT_PRISMA_QUERIES === 'true') {
this.$on('query' as never, async () => {
this.queryCount++
})
}
}
}