in packages/just-task/src/cache.ts [90:121]
function getLockFileHashes(): { [file: string]: string } {
const results: { [file: string]: string } = {};
const lockFiles = ['shrinkwrap.yml', 'package-lock.json', 'yarn.lock', 'pnpmfile.js'];
const gitRoot = findGitRoot();
const lsFileResults = spawnSync('git', ['ls-files', ...lockFiles], { cwd: gitRoot });
if (lsFileResults.status !== 0) {
return {};
}
const foundLockFiles = lsFileResults.stdout
.toString()
.split(/\n/)
.map(l => l.trim());
const hashResults = spawnSync('git', ['hash-object', ...foundLockFiles], { cwd: gitRoot });
if (hashResults.status !== 0) {
return {};
}
const hashes = hashResults.stdout
.toString()
.split(/\n/)
.map(l => l.trim());
foundLockFiles.forEach((foundLockFile, index) => {
results[foundLockFile] = hashes[index];
});
return results;
}