Skip to content
This repository was archived by the owner on Feb 20, 2026. It is now read-only.

feat/increase-perf-with-direct-http-to-registry #8

Merged
donfear merged 7 commits intomainfrom
feat/increase-perf-with-direct-http-to-registry
Jan 24, 2026
Merged

feat/increase-perf-with-direct-http-to-registry #8
donfear merged 7 commits intomainfrom
feat/increase-perf-with-direct-http-to-registry

Conversation

@donfear
Copy link
Owner

@donfear donfear commented Jan 24, 2026

No description provided.

… and caching

- Replace batch processing with direct HTTP calls to npm registry
- Implement in-memory caching with 5-minute TTL
- Add concurrency control using p-limit (max 50 concurrent requests)
- Filter versions to only include stable semantic versions (X.Y.Z format)
- Remove dependency on pnpm CLI commands and jq for version parsing

This significantly improves performance by:
1. Eliminating shell command overhead
2. Reducing registry query latency
3. Preventing duplicate requests through caching
4. Better handling of failed package lookups with fallback data
Remove redundant progress tracking logic and consolidate version analysis
progress messages for improved performance and cleaner code
…improved concurrency

- Remove timeout-based abort controllers in favor of native fetch
- Add explicit GET method and JSON accept headers for all registry requests
- Increase max concurrent requests from 50 to 80 for better throughput
- Enhance progress tracking with elapsed time metrics
- Improve error handling by returning null on fetch failures
- Add completion time reporting for package fetching operations

BREAKING CHANGE: Removes timeout-based request cancellation in favor of native fetch behavior
Remove detailed timing metrics from progress messages to reduce overhead
and improve performance during package data fetching. The simplified
progress format maintains user visibility while reducing unnecessary
string operations and calculations during the fetch process.
Add cacheMetadata method to ChangelogFetcher and integrate it in utils.ts
to store package metadata during registry fetches. This eliminates redundant
HTTP requests when both package data and changelog information are needed.

The implementation handles fallback to latest package data when top-level
metadata is missing and properly constructs repository URLs, npm links,
and issue tracker references for cached metadata.
- Updated package.json to remove ora and table dependencies
- Replaced ora spinner implementation with nanospinner in upgrader.ts
- Simplified spinner API usage with success/error methods
- Maintained all existing functionality while reducing bundle size
@donfear donfear merged commit 7c8a9d2 into main Jan 24, 2026
3 checks passed
@donfear donfear deleted the feat/increase-perf-with-direct-http-to-registry branch January 24, 2026 11:16
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant