mirror of
https://github.com/pnpm/pnpm.git
synced 2026-04-06 08:14:04 -04:00
Replace the per-package JSON file cache (metadata-v1.4/, metadata-ff-v1.4/) with a single SQLite database (metadata.db) for registry metadata caching. Benefits: - Cheap conditional request header lookups (etag/modified) without parsing the full metadata JSON — enables If-None-Match/If-Modified-Since with minimal I/O overhead - Full metadata can serve abbreviated requests — if a package was previously fetched as full (e.g., for trustPolicy or resolutionMode), the resolver reuses it instead of making another registry request - Eliminates hundreds of individual file read/write/rename operations per install, replaced by SQLite WAL-mode transactions - Removes the runLimited/metafileOperationLimits concurrency machinery — SQLite handles concurrent access natively New package: @pnpm/cache.metadata — SQLite-backed MetadataCache class modeled after @pnpm/store.index, with getHeaders() for cheap lookups, get() with abbreviated→full fallback, and set()/updateCachedAt().
47 lines
1.2 KiB
JSON
47 lines
1.2 KiB
JSON
{
|
|
"name": "@pnpm/cache.metadata",
|
|
"version": "1000.0.0-0",
|
|
"description": "SQLite-backed metadata cache for pnpm registry metadata",
|
|
"keywords": [
|
|
"pnpm",
|
|
"pnpm11",
|
|
"cache"
|
|
],
|
|
"license": "MIT",
|
|
"funding": "https://opencollective.com/pnpm",
|
|
"repository": "https://github.com/pnpm/pnpm/tree/main/cache/metadata",
|
|
"homepage": "https://github.com/pnpm/pnpm/tree/main/cache/metadata#readme",
|
|
"bugs": {
|
|
"url": "https://github.com/pnpm/pnpm/issues"
|
|
},
|
|
"type": "module",
|
|
"main": "lib/index.js",
|
|
"types": "lib/index.d.ts",
|
|
"exports": {
|
|
".": "./lib/index.js"
|
|
},
|
|
"files": [
|
|
"lib",
|
|
"!*.map"
|
|
],
|
|
"scripts": {
|
|
"lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
"test": "pn compile && pn .test",
|
|
"compile": "tsgo --build && pn lint --fix",
|
|
"prepublishOnly": "pn compile",
|
|
".test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules --disable-warning=ExperimentalWarning --disable-warning=DEP0169\" jest"
|
|
},
|
|
"dependencies": {},
|
|
"devDependencies": {
|
|
"@pnpm/cache.metadata": "workspace:*",
|
|
"@types/node": "catalog:",
|
|
"tempy": "catalog:"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.13"
|
|
},
|
|
"jest": {
|
|
"preset": "@pnpm/jest-config"
|
|
}
|
|
}
|