feat(client): implement strictUndefinedChecks#25224
Merged
Conversation
Contributor
size-limit report 📦
|
If preview feature is enabled, client-side validator will disallow
explicitly setting fields to `undefined`. Newly introduced `Prisma.skip`
could be used for skipping fields explicitly.
This should protect against accidental empty filters on destructive
operations, for example:
```ts
prisma.table.deleteMany({
where: {
// If `nullableThing` is `null` or `undefined`, this query will remove
// all data from the table
property: nullableThing?.property,
}
})
```
Intention is to make this behaviour default in Prisma 6.
[Full spec](#20169 (comment))
Close prisma/team-orm#1281
Close #20169
Close #20268
8b5e77e to
d545e2b
Compare
CodSpeed Performance ReportMerging #25224 will improve performances by 36.87%Comparing Summary
Benchmarks breakdown
|
aqrln
approved these changes
Sep 23, 2024
Member
aqrln
left a comment
There was a problem hiding this comment.
Looks great to me 💯
comments are non-blocking
packages/client/tests/functional/strictUndefinedChecks/_matrix.ts
Outdated
Show resolved
Hide resolved
packages/client/tests/functional/strictUndefinedChecks/_matrix.ts
Outdated
Show resolved
Hide resolved
jkomyno
approved these changes
Sep 23, 2024
SevInf
commented
Sep 23, 2024
Co-authored-by: Alexey Orlenko <alex@aqrln.net>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
If preview feature is enabled, client-side validator will disallow
explicitly setting fields to
undefined. Newly introducedPrisma.skipcould be used for skipping fields explicitly.
This should protect against accidental empty filters on destructive
operations, for example:
Intention is to make this behaviour default in Prisma 6.
Full spec
Close prisma/team-orm#1281
Close #20169
Close #20268
/integration