client: Add methods to Prisma Client (Prisma ORM v6) (/docs/orm/v6/prisma-client/client-extensions/client)
For the complete Prisma documentation index, see llms.txt. A markdown version of any docs page is available by appending
.mdto its URL.
Extend the functionality of Prisma Client, client component
Location: ORM > v6 > Prisma Client > Client Extensions > client: Add methods to Prisma Client
[!NOTE] Prisma Client extensions are Generally Available from versions 4.16.0 and later. They were introduced in Preview in version 4.7.0. Make sure you enable the
clientExtensionsPreview feature flag if you are running on a version earlier than 4.16.0.
You can use the client Prisma Client extensions component to add top-level methods to Prisma Client.
Extend Prisma Client
Section titled “Extend Prisma Client”Use the $extends client-level method to create an extended client. An extended client is a variant of the standard Prisma Client that is wrapped by one or more extensions. Use the client extension component to add top-level methods to Prisma Client.
To add a top-level method to Prisma Client, use the following structure:
const prisma = new PrismaClient().$extends({
client?: { ... }
})Example
Section titled “Example”The following example uses the client component to add two methods to Prisma Client:
$logoutputs a message.$totalQueriesreturns the number of queries executed by the current client instance.
[!NOTE] To use metrics in your project, you must enable the
metricsfeature flag in thegeneratorblock of yourschema.prismafile. Learn more about how to enable the feature flag in the Prisma schema file.
let total = 0;
const prisma = new PrismaClient().$extends({
client: {
$log: (s: string) => console.log(s),
async $totalQueries() {
return total;
},
},
query: {
$allModels: {
async $allOperations({ query, args }) {
total += 1;
return query(args);
},
},
},
});
async function main() {
prisma.$log("Hello world");
const totalQueries = await prisma.$totalQueries();
console.log(totalQueries);
}Related pages
Section titled “Related pages”- ``model
: Add custom methods to your models: Extend the functionality of Prisma Client, model component - ``query
: Create custom Prisma Client queries: Extend the functionality of Prisma Client, query component - ``result
: Add custom fields and methods to query results: Extend the functionality of Prisma Client, result component Shared packages & examples: Explore the Prisma Client extensions that have been built by Prisma and its communityShared Prisma Client extensions: Share extensions or import shared extensions into your Prisma project