prisma/prisma (@prisma/client)
### [`v5.20.0`](https://redirect.github.com/prisma/prisma/releases/tag/5.20.0)
[Compare Source](https://redirect.github.com/prisma/prisma/compare/5.19.1...5.20.0)
π **Help us spread the word about Prisma by starring the repo or [posting on X](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20@prisma%20release%20v5.20.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/5.20.0) about the release.** π
##### Highlights
##### `strictUndefinedChecks` in Preview
With Prisma ORM 5.20.0, the Preview feature `strictUndefinedChecks` will disallow any value that is explicitly `undefined` and will be a runtime error. This change is direct feedback from [this GitHub issue](https://redirect.github.com/prisma/prisma/issues/20169) and follows [our latest proposal](https://redirect.github.com/prisma/prisma/issues/20169#issuecomment-2338360300) on the same issue.
To demonstrate the change, take the following code snippet:
```tsx
prisma.table.deleteMany({
where: {
// If `nullableThing` is nullish, this query will remove all data.
email: nullableThing?.property,
}
})
```
In Prisma ORM 5.19.0 and below, this could result in unintended behavior. In Prisma ORM 5.20.0, if the `strictUndefinedChecks` Preview feature is enabled, you will get a runtime error instead:
```tsx
Invalid \`prisma.user.findMany()\` invocation in
/client/tests/functional/strictUndefinedChecks/test.ts:0:0
XX })
XX
XX test('throws on undefined input field', async () => {
β XX const result = prisma.user.deleteMany({
where: {
email: undefined
~~~~~~~~~
}
})
Invalid value for argument \`where\`: explicitly \`undefined\` values are not allowed."
```
We have also introduced the `Prisma.skip` symbol, which will allow you to get the previous behavior if desired.
```tsx
prisma.table.findMany({
where: {
// Use Prisma.skip to skip parts of the query
email: nullableEmail ?? Prisma.skip
}
})
```
From Prisma ORM 5.20.0 onward, we recommend enabling `strictUndefinedChecks`, along with the TypeScript compiler option `exactOptionalPropertyTypes`, which will help catch cases of undefined values at compile time. Together, these two changes will help protect your Prisma queries from potentially destructive behavior.
`strictUndefinedChecks` will be a valid Preview feature for the remainder of Prisma ORM 5. With our next major version, this behavior will become the default and the Preview feature will be βgraduatedβ to Generally Available.
If you have any questions or feedback about `strictUndefinedChecks`, please ask/comment in our dedicated [Preview feature GitHub discussion](https://redirect.github.com/prisma/prisma/discussions/25271).
##### `typedSql` bug fix
Thank you to everyone who has tried out our [`typedSql` Preview feature](https://www.prisma.io/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm) and [provided feedback](https://redirect.github.com/prisma/prisma/discussions/25106)! This release has a quick fix for typescript files generated when Prisma Schema enums had hyphens.
##### Fixes and improvements
##### Prisma
- [Prisma incorrectly parses CRDB's FK constraint error as `not available`.](https://redirect.github.com/prisma/prisma/issues/24072)
- [Invalid TypeScript files created by `generate` when typedSql is enabled and enum contains hyphens.](https://redirect.github.com/prisma/prisma/issues/25163)
- [`@prisma/internals` didn't list `ts-toolbelt` in dependencies.](https://redirect.github.com/prisma/prisma/issues/17952)
- [using `$extends` prevents model comments from being passed to TypeScript](https://redirect.github.com/prisma/prisma/issues/24648)
##### Prisma Engines
- [Planetscale engine tests: interactive_tx](https://redirect.github.com/prisma/prisma-engines/issues/4469)
- [Fix broken engine size publishing workflow](https://redirect.github.com/prisma/prisma-engines/issues/4991)
##### Credits
Huge thanks to [@mcuelenaere](https://redirect.github.com/mcuelenaere), [@pagewang0](https://redirect.github.com/pagewang0), [@key-moon](https://redirect.github.com/key-moon), [@pranayat](https://redirect.github.com/pranayat), [@yubrot](https://redirect.github.com/yubrot), [@thijmenjk](https://redirect.github.com/thijmenjk), [@mydea](https://redirect.github.com/mydea), [@HRM](https://redirect.github.com/HRM), [@haaawk](https://redirect.github.com/haaawk), [@baileywickham](https://redirect.github.com/baileywickham), [@brian-dlee](https://redirect.github.com/brian-dlee), [@nickcarnival](https://redirect.github.com/nickcarnival), [@eruditmorina](https://redirect.github.com/eruditmorina), [@nzakas](https://redirect.github.com/nzakas), and [@gutyerrez](https://redirect.github.com/gutyerrez) for helping!
Configuration
π Schedule: Branch creation - "on the 2nd through 5th day of the month" (UTC), Automerge - At any time (no schedule defined).
π¦ Automerge: Enabled.
β» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about these updates again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
5.19.1
->5.20.0
5.19.1
->5.20.0
Release Notes
prisma/prisma (@prisma/client)
### [`v5.20.0`](https://redirect.github.com/prisma/prisma/releases/tag/5.20.0) [Compare Source](https://redirect.github.com/prisma/prisma/compare/5.19.1...5.20.0) π **Help us spread the word about Prisma by starring the repo or [posting on X](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20@prisma%20release%20v5.20.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/5.20.0) about the release.** π ##### Highlights ##### `strictUndefinedChecks` in Preview With Prisma ORM 5.20.0, the Preview feature `strictUndefinedChecks` will disallow any value that is explicitly `undefined` and will be a runtime error. This change is direct feedback from [this GitHub issue](https://redirect.github.com/prisma/prisma/issues/20169) and follows [our latest proposal](https://redirect.github.com/prisma/prisma/issues/20169#issuecomment-2338360300) on the same issue. To demonstrate the change, take the following code snippet: ```tsx prisma.table.deleteMany({ where: { // If `nullableThing` is nullish, this query will remove all data. email: nullableThing?.property, } }) ``` In Prisma ORM 5.19.0 and below, this could result in unintended behavior. In Prisma ORM 5.20.0, if the `strictUndefinedChecks` Preview feature is enabled, you will get a runtime error instead: ```tsx Invalid \`prisma.user.findMany()\` invocation in /client/tests/functional/strictUndefinedChecks/test.ts:0:0 XX }) XX XX test('throws on undefined input field', async () => { β XX const result = prisma.user.deleteMany({ where: { email: undefined ~~~~~~~~~ } }) Invalid value for argument \`where\`: explicitly \`undefined\` values are not allowed." ``` We have also introduced the `Prisma.skip` symbol, which will allow you to get the previous behavior if desired. ```tsx prisma.table.findMany({ where: { // Use Prisma.skip to skip parts of the query email: nullableEmail ?? Prisma.skip } }) ``` From Prisma ORM 5.20.0 onward, we recommend enabling `strictUndefinedChecks`, along with the TypeScript compiler option `exactOptionalPropertyTypes`, which will help catch cases of undefined values at compile time. Together, these two changes will help protect your Prisma queries from potentially destructive behavior. `strictUndefinedChecks` will be a valid Preview feature for the remainder of Prisma ORM 5. With our next major version, this behavior will become the default and the Preview feature will be βgraduatedβ to Generally Available. If you have any questions or feedback about `strictUndefinedChecks`, please ask/comment in our dedicated [Preview feature GitHub discussion](https://redirect.github.com/prisma/prisma/discussions/25271). ##### `typedSql` bug fix Thank you to everyone who has tried out our [`typedSql` Preview feature](https://www.prisma.io/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm) and [provided feedback](https://redirect.github.com/prisma/prisma/discussions/25106)! This release has a quick fix for typescript files generated when Prisma Schema enums had hyphens. ##### Fixes and improvements ##### Prisma - [Prisma incorrectly parses CRDB's FK constraint error as `not available`.](https://redirect.github.com/prisma/prisma/issues/24072) - [Invalid TypeScript files created by `generate` when typedSql is enabled and enum contains hyphens.](https://redirect.github.com/prisma/prisma/issues/25163) - [`@prisma/internals` didn't list `ts-toolbelt` in dependencies.](https://redirect.github.com/prisma/prisma/issues/17952) - [using `$extends` prevents model comments from being passed to TypeScript](https://redirect.github.com/prisma/prisma/issues/24648) ##### Prisma Engines - [Planetscale engine tests: interactive_tx](https://redirect.github.com/prisma/prisma-engines/issues/4469) - [Fix broken engine size publishing workflow](https://redirect.github.com/prisma/prisma-engines/issues/4991) ##### Credits Huge thanks to [@mcuelenaere](https://redirect.github.com/mcuelenaere), [@pagewang0](https://redirect.github.com/pagewang0), [@key-moon](https://redirect.github.com/key-moon), [@pranayat](https://redirect.github.com/pranayat), [@yubrot](https://redirect.github.com/yubrot), [@thijmenjk](https://redirect.github.com/thijmenjk), [@mydea](https://redirect.github.com/mydea), [@HRM](https://redirect.github.com/HRM), [@haaawk](https://redirect.github.com/haaawk), [@baileywickham](https://redirect.github.com/baileywickham), [@brian-dlee](https://redirect.github.com/brian-dlee), [@nickcarnival](https://redirect.github.com/nickcarnival), [@eruditmorina](https://redirect.github.com/eruditmorina), [@nzakas](https://redirect.github.com/nzakas), and [@gutyerrez](https://redirect.github.com/gutyerrez) for helping!Configuration
π Schedule: Branch creation - "on the 2nd through 5th day of the month" (UTC), Automerge - At any time (no schedule defined).
π¦ Automerge: Enabled.
β» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.