React Native Package Checker
|
CodeLens Display | Meaning | Action |
---|---|---|
✓ New Arch Supported | Package supports New Architecture | Click for detailed package info |
ⅹ New Arch Unsupported | Package doesn't support New Architecture | Click to see alternatives or migration info |
⚠ New Arch Untested | Package has not been tested with New Architecture | Click to check latest information |
? Unlisted | Package not found in the official React Native directory | Click to check latest information |
📂 Unmaintained | Package is unmaintained | See maintenance status |
✓ Latest X.X.X | Package is up to date | View package details |
↑ Latest X.X.X | Update available | Click to see upgrade options |
✎ Required: X.X.X | Version mismatch detected for target React Native version | Click to update to required version |
📦 X packages | ✓X Supported | ⚠X Untested | ?X Unlisted | 📂X Unmaintained | Summary of all dependencies with clickable status counts | Click any segment to browse packages by that status |
🎛️ Quick Actions | Access common tasks and tools | Show/Apply Requirements, Refresh Data, Open Website, etc. |
🎛️ Title Bar
Toggle CodeLens display on/off:
- Use the toggle icon in the editor title bar for instant enable/disable
🎨 Visual Status Decorations
Package status decorations appear as icons in the editor gutter next to each dependency line:
Icon | Status | Meaning |
---|---|---|
![]() |
Supported | Package fully supports New Architecture |
![]() |
Unsupported | Package does not support New Architecture |
![]() |
Untested | Package has not been tested with New Architecture |
![]() |
Unlisted | Package not found in the React Native directory |
Configuration:
- Toggle decorations: Command Palette → "Toggle Status Decorations"
- Setting:
reactNativePackageChecker.showStatusDecorations
(default:true
)
⌨️ Command Palette
Press Ctrl+Shift+P
(Windows/Linux) or Cmd+Shift+P
(Mac):
Command | Description |
---|---|
Package Checker: Open Package Checker Website | Analyze dependencies in browser |
Package Checker: Browse Packages | Filter and search packages by status |
Package Checker: Refresh Package Data | Clear cache and fetch latest information |
Package Checker: Apply Requirements | Bulk update dependencies with preview |
Package Checker: Show Requirements | Display required versions for target RN version |
Package Checker: Hide Requirements | Clear requirements display |
Package Checker: Open Upgrade Helper | Access React Native upgrade guidance |
Package Checker: Toggle Status Decorations | Show/hide gutter icons |
Package Checker: Show Logs | View detailed extension logs |
📊 Data Sources
This extension leverages data from trusted sources:
- React Native Directory - Official React Native package directory with comprehensive compatibility data
- NPM Registry - Package version and metadata information
- React Native Upgrade Helper - Official upgrade guidance for React Native versions
- rn-diff-purge - Community-maintained diffs between React Native versions for requirements checking
Special thanks to the React Native Directory team and rn-diff-purge maintainers for providing the comprehensive data that powers this extension.
⚙️ Configuration
Customize the extension in your VS Code settings (settings.json
):
{
"reactNativePackageChecker.showLatestVersion": true,
"reactNativePackageChecker.showStatusDecorations": true,
"reactNativePackageChecker.enableLogging": true,
"reactNativePackageChecker.logLevel": "info",
"reactNativePackageChecker.requirements.cacheDuration": 24
}
Setting | Description | Default | Type | Options |
---|---|---|---|---|
showLatestVersion |
Show CodeLens for latest version information and fetch from NPM registry | true |
boolean |
true , false |
showStatusDecorations |
Show gutter decorations for package New Architecture status | true |
boolean |
true , false |
enableLogging |
Enable logging of API calls and cache operations to the output channel | true |
boolean |
true , false |
logLevel |
Set the logging level for the extension | info |
string |
debug , info , warn , error |
requirements.cacheDuration |
Cache duration for requirements data in hours | 24 |
number |
1-168 hours |
To access settings:
- Open Command Palette (
Ctrl+Shift+P
) - Type "Preferences: Open Settings (JSON)"
- Add the configuration above
❓ FAQ
1. How accurate are the version requirements?
The extension uses the same data source as React Native Upgrade Helper - specifically the rn-diff-purge repository - ensuring the requirements are as reliable as the official upgrade tool. The extension focuses on packages that are part of React Native project templates, providing targeted guidance for the most commonly used dependencies. Packages not included in these templates won't have version requirements available.
2. How does the extension get New Architecture and version data?
The extension fetches New Architecture compatibility status through the Package Checker website API, which uses React Native Directory data. This includes support status, maintenance information, and alternative package suggestions. Latest version information comes directly from the NPM Registry to provide up-to-date package versions. Packages not listed in React Native Directory will show as "Unlisted" status.
3. What if my React Native version isn't supported for requirements checking?
Version requirements depend on data availability in the rn-diff-purge repository. Very new or very old React Native versions might not have complete diff data available, so try targeting a well-established version that's known to be supported.
🛠️ Development
Tech Stack:
Commands:
bun install # Install dependencies
bun run compile # Build the extension
bun run watch # Watch mode for development
bun run test # Run tests
bun run lint # Run ESLint
bun run lint:fix # Fix ESLint issues
bun run format # Format code with Prettier
bun run format:check # Check code formatting
bun run fix # Run lint:fix and format together
bun run package # Create .vsix file
bun run publish # Publish to marketplace
🙌 Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
For detailed guidelines, see Contributing Guidelines.
Found a bug? Please open an issue with:
- VS Code version
- Extension version
- Steps to reproduce
- Expected vs actual behavior
📜 License
This project is licensed under the MIT License.
Made with ❤️ for the React Native community
@sandipshiwakoti