Back to changelog

Enhancements to TypeGen features, transition to new Portable Text Editor package, and bugfixes

New TypeGen Features

Better GROQ Function Coverage

We have added the following improvements to type generation for GROQ query results:

Improved Union Handling in TypeGen

TypeGen now correctly expands all unions inside an object, addressing this reported issue on GitHub. Previously, only a part of a union might be returned. TypeGen now ensures that all object types in a union are expanded and included in the generated types.

// Example query
export const HomePageQuery = groq`*[_type == "page" && slug.current == "homepage"]{
  title,
  components[] {
    _type == "hero" => { title, "image": image.asset->url },
    _type == "cta" => { title, link }
  }
}`;

TypeGen will now generate the following type for the query above:

export type HomePageQueryResult = Array<{
  title: string;
  components: Array<
    | { _type: 'hero'; title: string; image: string }
    | { _type: 'cta'; title: string; link: string }
  >;
}>;

New import path for the Portable Text Editor

We’ve started work on a standalone Portable Text Editor package, and thus transitioned to using the @portabletext/editor package instead of the now deprecated @sanity/portable-text-editor package. This change includes several internal improvements and fixes. You can follow this work in this repository on GitHub — more documentation will follow soon.

Advanced users who have used the @sanity/portable-text-editor dependency should update to @portabletext/editor to ensure continued support and improvements.

Notable bugfixes

  • Fixes an issue where FormInput would not render fields inside a fieldset.
  • Various TypeGen bug fixes.
  • You can now paste content into the Portable Text Editor in Firefox (again).

Install or upgrade Sanity Studio

To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.

If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.

Documentation affected by this release

Published July 03, 2024