Files
pnpm/installing/client/tsconfig.json
Zoltan Kochan 89ea578e68 perf: replace file-based metadata cache with SQLite
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().
2026-04-01 14:54:13 +02:00

56 lines
958 B
JSON

{
"extends": "@pnpm/tsconfig",
"compilerOptions": {
"outDir": "lib",
"rootDir": "src"
},
"include": [
"src/**/*.ts",
"../../__typings__/**/*.d.ts"
],
"references": [
{
"path": "../../cache/metadata"
},
{
"path": "../../core/types"
},
{
"path": "../../fetching/binary-fetcher"
},
{
"path": "../../fetching/directory-fetcher"
},
{
"path": "../../fetching/fetcher-base"
},
{
"path": "../../fetching/git-fetcher"
},
{
"path": "../../fetching/tarball-fetcher"
},
{
"path": "../../fetching/types"
},
{
"path": "../../hooks/types"
},
{
"path": "../../network/auth-header"
},
{
"path": "../../network/fetch"
},
{
"path": "../../resolving/default-resolver"
},
{
"path": "../../resolving/resolver-base"
},
{
"path": "../../store/index"
}
]
}