Backfill verification install state
This commit is contained in:
@@ -194,6 +194,27 @@ function hasRunnableNodeModulesTree(repoDir: string): boolean {
|
||||
}
|
||||
}
|
||||
|
||||
function backfillInstallFingerprintIfPossible(
|
||||
repoDir: string,
|
||||
packageManager: WorkspacePackageManager,
|
||||
): boolean {
|
||||
if (!hasRunnableNodeModulesTree(repoDir)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (readInstallFingerprint(repoDir)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const expectedFingerprint = computeInstallFingerprint(repoDir);
|
||||
if (!expectedFingerprint) {
|
||||
return false;
|
||||
}
|
||||
|
||||
writeInstallFingerprint(repoDir, packageManager, expectedFingerprint);
|
||||
return true;
|
||||
}
|
||||
|
||||
export function detectWorkspacePackageManager(
|
||||
repoDir: string,
|
||||
): WorkspacePackageManager | null {
|
||||
@@ -326,6 +347,10 @@ export function ensureWorkspaceDependenciesInstalled(
|
||||
return { installed: false, packageManager };
|
||||
}
|
||||
|
||||
if (backfillInstallFingerprintIfPossible(repoDir, packageManager)) {
|
||||
return { installed: false, packageManager };
|
||||
}
|
||||
|
||||
const command = resolveWorkspaceInstallCommand(repoDir);
|
||||
if (!command) {
|
||||
return { installed: false, packageManager };
|
||||
|
||||
Reference in New Issue
Block a user