MCPcopy
hub / github.com/entropic-dev/entropic / fetchPackage

Function fetchPackage

cli/lib/fetch-package.js:11–37  ·  view source on GitHub ↗
(
  { registry, cache, expires = 5 * 60 * 1000 },
  name,
  now = Date.now()
)

Source from the content-addressed store, hash-verified

9const ssri = require('ssri');
10
11async function fetchPackage(
12 { registry, cache, expires = 5 * 60 * 1000 },
13 name,
14 now = Date.now()
15) {
16 let meta = await cacache
17 .get(cache, `spackage:${name}`)
18 .then(xs => JSON.parse(String(xs.data)))
19 .catch(() => null);
20
21 if (!meta || now - Date.parse(meta.date) > Number(expires)) {
22 const pkgReq = await fetch(`${registry}/v1/packages/package/${name}`);
23 meta = {
24 date: Date.parse(pkgReq.headers.date),
25 data: await pkgReq.json()
26 };
27
28 if (pkgReq.status > 399) {
29 console.log(name, meta.data);
30 throw new Error();
31 }
32
33 await cacache.put(cache, `spackage:${name}`, JSON.stringify(meta));
34 }
35
36 return meta.data;
37}

Callers 2

visitPackageFunction · 0.85
buildFromMetaFunction · 0.85

Calls 2

getMethod · 0.45
logMethod · 0.45

Tested by

no test coverage detected