Ross Cooperman
07/08/2022, 8:27 PMnikolasburk
nikolasburk
params contains the model name:
prisma.$use(async (params, next) => {
const modelName = params.model
const result = await next(params)
result.__resolveType = () => {
return modelName
}
return result
})
Its not type-safe though, and so you will need to add a @ts-ignore when calling the appended __resolveType method:
async function main() {
const prisma = new PrismaClient()
prisma.$use(async (params, next) => {
const modelName = params.model
const result = await next(params)
result.__resolveType = () => {
return modelName
}
return result
})
const created = await prisma.user.create({
data: {
email: `user.${Date.now()}@prisma.io`,
},
})
/*
{
id: 'd070c3c8-1d9d-4771-8f58-35984d2c93e3',
createdAt: 2022-07-12T10:32:47.947Z,
updatedAt: 2022-07-12T10:32:47.948Z,
name: null,
email: '<mailto:user.1657621967883@prisma.io|user.1657621967883@prisma.io>',
__resolveType: [Function (anonymous)]
}
*/
console.log(created)
/*
user
*/
// @ts-ignore
console.log(created.__resolveType())
}Ross Cooperman
07/15/2022, 8:45 PMRoss Cooperman
07/15/2022, 8:45 PMnikolasburk
Ross Cooperman
07/18/2022, 6:44 PMRoss Cooperman
07/18/2022, 6:49 PM