Skip to content

Commit

Permalink
fix: always add name and version to the index file (#7708)
Browse files Browse the repository at this point in the history
close #7115
  • Loading branch information
zkochan committed Feb 24, 2024
1 parent 99ccefd commit 11d9ebd
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
6 changes: 6 additions & 0 deletions .changeset/heavy-cars-press.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@pnpm/worker": patch
"pnpm": patch
---

Always add a name and version field to the index files in the store [#7115](https://github.com/pnpm/pnpm/issues/7115).
14 changes: 9 additions & 5 deletions worker/src/worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,9 @@ function addTarballToStore ({ buffer, cafsDir, integrity, filesIndexFile, pkg, r
cafsCache.set(cafsDir, createCafs(cafsDir))
}
const cafs = cafsCache.get(cafsDir)!
const { filesIndex, manifest } = cafs.addFilesFromTarball(buffer, readManifest)
const { filesIndex, manifest } = cafs.addFilesFromTarball(buffer, Boolean(readManifest) || !pkg?.name || !pkg.version)
const { filesIntegrity, filesMap } = processFilesIndex(filesIndex)
writeFilesIndexFile(filesIndexFile, { pkg: pkg ?? {}, files: filesIntegrity })
writeFilesIndexFile(filesIndexFile, { pkg: pkg ?? manifest ?? {}, files: filesIntegrity })
return { status: 'success', value: { filesIndex: filesMap, manifest } }
}

Expand All @@ -147,20 +147,24 @@ function addFilesFromDir ({ dir, cafsDir, filesIndexFile, sideEffectsCacheKey, p
cafsCache.set(cafsDir, createCafs(cafsDir))
}
const cafs = cafsCache.get(cafsDir)!
const { filesIndex, manifest } = cafs.addFilesFromDir(dir, { files, readManifest })
const { filesIndex, manifest } = cafs.addFilesFromDir(dir, {
files,
readManifest: Boolean(readManifest) || !pkg?.name || !pkg.version,
})
const { filesIntegrity, filesMap } = processFilesIndex(filesIndex)
if (sideEffectsCacheKey) {
let filesIndex!: PackageFilesIndex
try {
filesIndex = loadJsonFile<PackageFilesIndex>(filesIndexFile)
} catch {
filesIndex = { files: filesIntegrity }
pkg = pkg ?? manifest
filesIndex = { name: pkg?.name, version: pkg?.version, files: filesIntegrity }
}
filesIndex.sideEffects = filesIndex.sideEffects ?? {}
filesIndex.sideEffects[sideEffectsCacheKey] = filesIntegrity
writeJsonFile(filesIndexFile, filesIndex)
} else {
writeFilesIndexFile(filesIndexFile, { pkg: pkg ?? {}, files: filesIntegrity })
writeFilesIndexFile(filesIndexFile, { pkg: pkg ?? manifest ?? {}, files: filesIntegrity })
}
return { status: 'success', value: { filesIndex: filesMap, manifest } }
}
Expand Down

0 comments on commit 11d9ebd

Please sign in to comment.