vercel-labs / vercel-labs/json-render
Widen @json-render/react peer range to react ^18.0.0 || ^19.0.0
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 16.8k
- Forks
- 901
- Avg merge
- 3h 14m
- Merged PRs (30d)
- 4
Description
The @json-render/react package declares "react": "^19.2.3" as a peer dependency (every published version back to 0.1.0 requires ^19). Auditing the 0.20.0 dist bundle, it only uses hooks that exist and are stable in React 18: useState, useEffect, useContext, useRef, useMemo, useCallback, and useSyncExternalStore — no use(), useActionState, or useOptimistic.
We're running it in production-shaped code on React 18.3.1 via an npm overrides entry, with the full render path (defineCatalog → defineRegistry → JSONUIProvider → Renderer, including useStateBinding two-way bindings, visibility conditions, and action dispatch) covered by our test suite — all green on React 18 + jsdom.
Would you consider widening the peer range to "react": "^18.0.0 || ^19.0.0" (and equivalently for react-dom if applicable)? That would let React 18 consumers adopt the library without silencing npm's peer check. Happy to open a PR if the range change is acceptable.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the @json-render/react package metadata and its peerDependencies, checking whether react-dom is declared alongside react. Review the mentioned 0.20.0 dist bundle and the defineCatalog → defineRegistry → JSONUIProvider → Renderer path; done means React 18 and 19 consumers pass peer checks without overrides.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend, web-dev
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100