This repository contains a number of examples of Prisma Client extensions.
The extensions in this repository are provided as examples only, and without warranty. They are not intended to be used in production environments.
| Example | Description |
|---|---|
audit-log-context |
Provides the current user's ID as context to Postgres audit log triggers |
callback-free-itx |
Adds a method to start interactive transactions without callbacks |
computed-fields |
Adds virtual / computed fields to result objects |
input-transformation |
Transforms the input arguments passed to Prisma Client queries to filter the result set |
input-validation |
Runs custom validation logic on input arguments passed to mutation methods |
instance-methods |
Adds Active Record-like methods like save() and delete() to result objects |
json-field-types |
Uses strongly-typed runtime parsing for data stored in JSON columns |
model-filters |
Adds reusable filters that can composed into complex where conditions for a model |
obfuscated-fields |
Prevents sensitive data (e.g. password fields) from being included in results |
query-logging |
Wraps Prisma Client queries with simple query timing and logging |
readonly-client |
Creates a client that only allows read operations |
retry-transactions |
Adds a retry mechanism to transactions with exponential backoff and jitter |
row-level-security |
Uses Postgres row-level security policies to isolate data in a multi-tenant application |
static-methods |
Adds custom query methods to Prisma Client models |
transformed-fields |
Demonstrates how to use result extensions to transform query results and add i18n to an app |
exists-fn |
Adds an exists function to all your models |
update-delete-ignore-not-found |
Adds updateIgnoreOnNotFound and deleteIgnoreOnNotFound function to all your models |
If you're interested in building an extension you want to share as a package, we recommend using the following starter repository.
Refer to our documentation to learn more about how to create and publish extensions.