memoryLock
tcmts.loader.packages.memoryLock · #5ydmaep2 · term · runs anywhere
import type { PackageLock } from "#codebase/tcmts/loader/packages";
export function memoryLock(): PackageLock {
const m = new Map<string, { version: string; integrity?: string }>();
return {
get: (n, r) => m.get(`${n}@${r}`)?.version,
set: (n, r, version, integrity) => {
const was = m.get(`${n}@${r}`);
m.set(`${n}@${r}`, { version, integrity: integrity ?? (was?.version === version ? was.integrity : undefined) });
},
integrity: (n, r) => m.get(`${n}@${r}`)?.integrity,
all: () => [...m].map(([k, v]) => ({ name: k.slice(0, k.lastIndexOf("@")), range: k.slice(k.lastIndexOf("@") + 1), ...v })),
};
}
uses
used by