Prisma Client Extension Examples
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.
Examples
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 |
Authoring extensions
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.