Skip to content

feat(async-list): port @sanity/sanity-plugin-async-list to the monorepo#968

Draft
stipsan wants to merge 76 commits into
mainfrom
cursor/migrate-async-list-2b10
Draft

feat(async-list): port @sanity/sanity-plugin-async-list to the monorepo#968
stipsan wants to merge 76 commits into
mainfrom
cursor/migrate-async-list-2b10

Conversation

@stipsan

@stipsan stipsan commented Jun 12, 2026

Copy link
Copy Markdown
Member

Migrates @sanity/sanity-plugin-async-list into the plugins monorepo using the copy plugin generator (git subtree import with full history preserved).

Demo

Both loader modes verified manually in the test studio (kitchen-sink workspace):

async_list_plugin_demo.mp4

Completed Async List document with both autocomplete fields populated

Changes

  • Imported plugin source via git subtree from sanity-io/sanity-plugin-async-list (history preserved)
  • Scaffolded monorepo config (package.json, package.config.ts, tsconfig.json, tsconfig.build.json, vitest.config.ts) with React Compiler + ESM-only build
  • Extracted AsyncListPluginConfig into src/types.ts to break a circular type import between src/index.ts and the component (the dts bundler failed on it)
  • Replaced lodash with lodash-es (lodash-es/debounce.js direct import per lint rules), dropped @sanity/incompatible-plugin
  • Switched @sanity/studio-secrets to the in-repo workspace:* dependency, @sanity/ui to catalog: (v3), @sanity/icons to ^3.7.4
  • Fixed lint issues: floating promises (void), unused eslint-disable directives, unnecessary default type argument on AutocompleteProps
  • Added test-studio example (dev/test-studio/src/async-list/index.tsx) with both seed (PokeAPI) and search (Disney API) loader modes, wired into the kitchen-sink workspace
  • Added major changeset and updated the root README plugins table

Transfer verification

  • Trusted publishing configured: npm trust github @sanity/sanity-plugin-async-list --file=release.yml --repository=sanity-io/plugins
  • package.json dependencies/peerDependencies/exports verified against original repo
  • Test studio example wired and manually verified (pnpm dev)
  • pnpm format, pnpm knip, pnpm lint, pnpm build, pnpm test run all pass
  • Major changeset added with validated breaking changes

Maintainer follow-up

Agents cannot complete these steps themselves. Please handle them:

Breaking changes (major release)

  • React Compiler enabled: built with React Compiler targeting React 19
  • ESM-only: CommonJS support removed
  • React 19.2+ required (previously ^18 || ^19); react-dom is now a required peer dependency
  • Sanity Studio v5+ required (v3 and v4 no longer supported)
  • Node.js 20.19+ required (previously >=18)

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

ChrisLaRocque and others added 21 commits December 12, 2024 20:22
* fix: infinite fetch when used as component

* fix: settings logic blocked users
* feat: expose client to loader

* fix: explicit types
fix(deps): allow studio v4 in peer dep ranges
…8b5a44efc01b0569eafb635c2b84c3db'

git-subtree-dir: plugins/@sanity/sanity-plugin-async-list
git-subtree-mainline: 064dc6b
git-subtree-split: 766de08
@changeset-bot

changeset-bot Bot commented Jun 12, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9b0b345

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@sanity/sanity-plugin-async-list Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Jun 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
plugins-studio Ready Ready Preview, Comment Jun 12, 2026 2:56pm

Request Review

@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​@​sanity/​assist@​6.1.19810010097100

View full report

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants