Skip to content

Commit

Permalink
0.1.1 fix lint and add better log
Browse files Browse the repository at this point in the history
  • Loading branch information
edwmurph committed Mar 15, 2022
1 parent 54a2cac commit 0faeea8
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 18 deletions.
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = {
root: true,
extends: '@edwmurph/eslint-config',
extends: '@edwmurph/eslint-config'
};
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,5 @@ and then just:

```
npm run upgrade-deps
npm run upgrade-deps -- -b
```
8 changes: 4 additions & 4 deletions bin/cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ const { version } = require('../package.json');
const upgradeDeps = require('../');

program
.option('-b, --breaking', 'include breaking/major version upgrades')
.version( version, '-v, --version', 'output the version')
.option( '-b, --breaking', 'include breaking/major version upgrades' )
.version( version, '-v, --version', 'output the version' )
.description([
'CLI for automating upgrading package.json dependencies.',
'Semver prefixes will be stripped in favor of using exact versions.',
].join(' '))
'Semver prefixes will be stripped in favor of using exact versions.'
].join(' ') )
.action( upgradeDeps );

program.parse( process.argv );
25 changes: 13 additions & 12 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ const getLatestGit = async( version ) => {

const { stdout: latestTag } = await execAsync([
`cd ${ destination }`,
'&& git describe --tags `git rev-list --tags --max-count=1`',
].join(' '));
'&& git describe --tags `git rev-list --tags --max-count=1`'
].join(' ') );

return `${ repo }#${ latestTag.trim() }`;
};
Expand All @@ -49,13 +49,13 @@ const getLatest = async([ pkgName, version ]) => {
};

const getPackageJSON = () => {
const pkgJSONPath = path.join(process.cwd(), 'package.json');
const pkgJSONPath = path.join( process.cwd(), 'package.json' );

try {
return require( pkgJSONPath );
} catch ( ex ) {
if ( ex.code === 'MODULE_NOT_FOUND' ) {
throw new Error(`couldnt find package.json in current directory: ${ pkgJSONPath }`);
throw new Error( `couldnt find package.json in current directory: ${ pkgJSONPath }` );
}
throw ex;
}
Expand All @@ -66,44 +66,45 @@ const upgradeDeps = async({ breaking }) => {
const packageJSON = getPackageJSON();

await execAsync( `[ ! -d ${ storage } ]` ).catch( () => {
console.log( `State directory "${ storage }" must be deleted to continue` );
process.exit( 1 );
});

await execAsync( `mkdir -p ${ storage }` );

const depsPromise = Promise.all(
Object.entries( packageJSON.dependencies || {} ).map( getLatest ),
Object.entries( packageJSON.dependencies || {} ).map( getLatest )
);

const devDepsPromise = Promise.all(
Object.entries( packageJSON.devDependencies || {} ).map( getLatest ),
Object.entries( packageJSON.devDependencies || {} ).map( getLatest )
);


const [ dependencies, devDependencies ] = await Promise.all([
depsPromise,
devDepsPromise,
devDepsPromise
]);


const updated = Object.assign( {}, packageJSON );

if ( dependencies.length ) {
updated.dependencies = Object.fromEntries(
dependencies.map(([name, version]) => {
dependencies.map( ([name, version]) => {
const prevVersion = packageJSON.dependencies[name];
const majorBump = prevVersion.split('.')[0] !== version.split('.')[0];
return [name, !majorBump || breaking ? version : prevVersion];
}),
})
);
}

if ( devDependencies.length ) {
updated.devDependencies = Object.fromEntries(
devDependencies.map(([name, version]) => {
devDependencies.map( ([name, version]) => {
const prevVersion = packageJSON.devDependencies[name];
const majorBump = prevVersion.split('.')[0] !== version.split('.')[0];
return [name, !majorBump || breaking ? version : prevVersion];
}),
})
);
}

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "upgrade-deps",
"version": "0.1.0",
"version": "0.1.1",
"description": "CLI for automating updating package.json dependencies",
"main": "index.js",
"scripts": {
Expand Down

0 comments on commit 0faeea8

Please sign in to comment.