npm / cacache

npm's content-addressable cache
Other
280 stars 31 forks source link

[QUESTION] Get info by integrity? #166

Closed samblackmore closed 1 year ago

samblackmore commented 1 year ago

Is there an existing issue for this?

Current Behavior

I was wondering if it's possible to get info for a cache entry by digest? Something like cacache.get.info.byDigest(cache, integrity)

cacache.get.info(cache, key) only takes a key and get.info.byDigest doesn't exist. I see cacache.get.hasContent(cache, integrity) which finds my cache entry but only tells me its size and some stats about the file. If it also returned the key then I could use get.info.

The only alternative I can really see to get the info (including metadata which I'm really interested in) is using ls and iterating over its output but that seems kinda crazy!

Also, I see that cache.get.byDigest does not return metadata by design so there is probably a technical reason this is not possible?

Expected Behavior

No response

Steps To Reproduce

No response

Environment

No response

wraithgar commented 1 year ago

The reason the metadata is not included is because multiple entries can have the same digest. For instance if they are at different urls. There is no current way to correlate the data back to the individual items. That was not an original design concern of npm, once we have a digest we just want the data.