From f3a9ce2635d95dc1f533128219057a60e0d3c43e Mon Sep 17 00:00:00 2001 From: Thomas Allmer Date: Sun, 3 Nov 2019 18:12:05 +0100 Subject: [PATCH] chore: lint versions of all package.jsons --- scripts/lint-versions.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/scripts/lint-versions.js b/scripts/lint-versions.js index 6b644819..2c823888 100644 --- a/scripts/lint-versions.js +++ b/scripts/lint-versions.js @@ -23,23 +23,32 @@ function readPackageJson(filePath) { function compareVersions(versionsA, versionsB) { let output = ''; - Object.keys(versionsA).forEach(dep => { + const newVersions = { ...versionsA }; + Object.keys(versionsB).forEach(dep => { if (versionsA[dep] && versionsB[dep] && versionsA[dep] !== versionsB[dep]) { - output += ` - "${dep}": "${versionsA[dep]}" !== "${versionsB[dep]}"`; + output += ` - "${dep}": "${versionsA[dep]}" !== "${versionsB[dep]}"\n`; + } + if (!newVersions[dep]) { + newVersions[dep] = versionsB[dep]; } }); - return output; + + return { + output, + newVersions, + }; } -const currentVersions = readPackageJson('./package.json'); +let currentVersions = readPackageJson('./package.json'); let endReturn = 0; getDirectories('./packages').forEach(subPackage => { const filePath = `./packages/${subPackage}/package.json`; const subPackageVersions = readPackageJson(filePath); - const result = compareVersions(currentVersions, subPackageVersions); - if (result) { - console.log(`Version miss matches found in "${filePath}":`); - console.log(result); + const { output, newVersions } = compareVersions(currentVersions, subPackageVersions); + currentVersions = { ...newVersions }; + if (output) { + console.log(`Version mismatches found in "${filePath}":`); + console.log(output); console.log(); endReturn = 1; }