-
Notifications
You must be signed in to change notification settings - Fork 498
feat(schema): cache generated field/type objects #11236
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
3 Skipped Deployments
|
🧪 E2E Preview environment🔑 Environment Variables for Local TestingThis is the preview URL for the E2E tests: https://e2e-studio-2f5yp5wsi.sanity.dev To run the E2E tests locally, you can use the following environment variables, then run 💬 Remember to build the project first with |
🧪 E2E Preview environmentWaiting for preview deployment to finish… |
📊 Playwright Test ReportThis report contains test results, including videos of failing tests. |
📊 Playwright Test ReportWaiting for E2E tests to finish… |
⚡️ Editor Performance ReportUpdated Fri, 28 Nov 2025 09:42:00 GMT
Detailed information🏠 Reference resultThe performance result of
🧪 Experiment resultThe performance result of this branch
📚 Glossary
|
fa80ad9 to
6c30f2b
Compare
7e30900 to
b7b96cd
Compare
stipsan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering if this unlocks better hot module reloading performance with our improved React Compiler coverage.
It might speed up first render too since the schema compiler can skip more work?
Either way great improvement! 💖
b7b96cd to
c121f06
Compare
6c30f2b to
313f899
Compare
c121f06 to
d114d13
Compare
313f899 to
eb204e5
Compare
Merge activity
|
This makes sure that the same field definition always ends up becoming the exact same field object, making it possible to use `===` to compare them.
eb204e5 to
2a63622
Compare
|
Re-review requested only due to the rebasing which happened during merging of parent. No changes. |
stipsan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's go 🚢

Description
This makes sure that the same field/type definition always ends up becoming the exact same field/type object, making it possible to use
===to compare them. In general, this should reduce the memory usage for customers who are reusing the same field multiple places.This also enables us to later optimize this scenario when serializing as well.
(Note that this PR doesn't actually depend on #11224, but it was easier for me to have a full stack. If this gets attention before #11224 I will reorder them.)
What to review
Testing
Notes for release
N/A.