From 75fb681eb84c41d8b834f708cbd2465ff1782e18 Mon Sep 17 00:00:00 2001 From: Anton Nikolaev Date: Tue, 21 Apr 2020 07:03:17 -0700 Subject: [PATCH] Fixed version bumping for devDependencies Summary: Fixed bumping versions for local packages added as devDependencies Reviewed By: passy Differential Revision: D21154758 fbshipit-source-id: 234fdf073b9bc166eb9deb78a879bc1380d0d1bc --- desktop/scripts/workspaces.ts | 45 +++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/desktop/scripts/workspaces.ts b/desktop/scripts/workspaces.ts index 3b7d23351..0c62275cb 100644 --- a/desktop/scripts/workspaces.ts +++ b/desktop/scripts/workspaces.ts @@ -68,33 +68,48 @@ async function savePackageJson({dir, json}: Package) { }); } +function updateDependencies( + dependencies: {[key: string]: string}, + packagesToUpdate: string[], + newVersion: string, +): boolean { + if (!dependencies) { + return false; + } + let updated = false; + for (const packageName of packagesToUpdate) { + if ( + dependencies[packageName] !== undefined && + dependencies[packageName] !== newVersion + ) { + dependencies[packageName] = newVersion; + updated = true; + } + } + return updated; +} + async function bumpWorkspaceVersions( {rootPackage, packages}: Workspaces, newVersion?: string, ): Promise { newVersion = newVersion || (rootPackage.json.version as string); - if (rootPackage.json.version !== newVersion) { - rootPackage.json.version = newVersion; - await savePackageJson(rootPackage); - } + const allPackages = [rootPackage, ...packages]; const localPackageNames = packages.map(({json}) => json.name as string); - for (const pkg of packages) { + for (const pkg of allPackages) { const json = pkg.json; let changed = false; if (json.version !== newVersion) { json.version = newVersion; changed = true; } - if (json.dependencies) { - for (const localPackageName of localPackageNames) { - if ( - json.dependencies[localPackageName] !== undefined && - json.dependencies[localPackageName] !== newVersion - ) { - json.dependencies[localPackageName] = newVersion; - changed = true; - } - } + if (updateDependencies(json.dependencies, localPackageNames, newVersion)) { + changed = true; + } + if ( + updateDependencies(json.devDependencies, localPackageNames, newVersion) + ) { + changed = true; } if (changed) { await savePackageJson(pkg);