From 1d432f54d99e22e5bc233af71d67078bf21cac70 Mon Sep 17 00:00:00 2001 From: edwmurph Date: Tue, 16 Nov 2021 10:16:19 -0500 Subject: [PATCH] tolerate semantic version prefixes in npm packages --- README.md | 2 +- bin/cli.js | 5 ++++- index.js | 9 ++++----- package.json | 6 +++--- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index dbcf633..41c94a0 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ npx upgrade-deps ``` Usage: cli [options] -CLI for automating upgrading package.json dependencies +CLI for automating upgrading package.json dependencies. Semver prefixes will be stripped in favor of using exact versions. Options: -b, --breaking include breaking/major version upgrades diff --git a/bin/cli.js b/bin/cli.js index 9511feb..a83414e 100644 --- a/bin/cli.js +++ b/bin/cli.js @@ -7,7 +7,10 @@ const upgradeDeps = require('../'); program .option('-b, --breaking', 'include breaking/major version upgrades') .version( version, '-v, --version', 'output the version') - .description('CLI for automating upgrading package.json dependencies') + .description([ + 'CLI for automating upgrading package.json dependencies.', + 'Semver prefixes will be stripped in favor of using exact versions.', + ].join(' ')) .action( upgradeDeps ); program.parse( process.argv ); diff --git a/index.js b/index.js index cc9831a..1027263 100644 --- a/index.js +++ b/index.js @@ -8,7 +8,7 @@ const storage = '~/.upgrade-deps'; const execAsync = promisify( exec ); const writeFileAsync = promisify( fs.writeFile ); const semverRegexStr = '[0-9]+\\.[0-9]+\\.[0-9]+'; -const semverRegex = new RegExp( `^${ semverRegexStr }$` ); +const semverRegex = new RegExp( semverRegexStr ); const gitSemverRegex = new RegExp( `^.+#${ semverRegexStr }$` ); const getLatestNpm = async( pkgName ) => { @@ -39,10 +39,10 @@ const getLatestGit = async( version ) => { const getLatest = async([ pkgName, version ]) => { let latest = version; - if ( semverRegex.test( version ) ) { - latest = await getLatestNpm( pkgName ); - } else if ( gitSemverRegex.test( version ) ) { + if ( gitSemverRegex.test( version ) ) { latest = await getLatestGit( version ); + } else if ( semverRegex.test( version ) ) { + latest = await getLatestNpm( pkgName ); } return [ pkgName, latest ]; @@ -66,7 +66,6 @@ const upgradeDeps = async({ breaking }) => { const packageJSON = getPackageJSON(); await execAsync( `[ ! -d ${ storage } ]` ).catch( () => { - console.error( `${ storage } must not exist` ); process.exit( 1 ); }); diff --git a/package.json b/package.json index f63e9ac..171e037 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "upgrade-deps", - "version": "0.0.4", + "version": "0.0.5", "description": "CLI for automating updating package.json dependencies", "main": "index.js", "scripts": { @@ -13,10 +13,10 @@ "upgrade-deps": "./bin/cli.js" }, "dependencies": { - "commander": "7.0.0" + "commander": "8.3.0" }, "devDependencies": { - "@edwmurph/eslint-config": "0.0.12" + "@edwmurph/eslint-config": "0.1.2" }, "author": "edward", "homepage": "https://github.com/edwmurph/upgrade-deps#readme",