From 69f3c48b2c5ee9b2fecf73572d1e8942517bc77c Mon Sep 17 00:00:00 2001 From: di-sukharev Date: Sat, 11 Mar 2023 00:57:48 +0800 Subject: [PATCH] * chore(TODO.md): mark "show new version available message" as completed * chore(package.json): add `--tag latest` flag to `npm publish` command in `deploy` script * refactor(cli.ts): add async/await to `prepareCommitMessageHook` and `commit` functions, and check for new version of `opencommit` after commit is made --- .github/TODO.md | 2 +- package.json | 2 +- src/cli.ts | 13 ++++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/TODO.md b/.github/TODO.md index f0ce2b8..aa07091 100644 --- a/.github/TODO.md +++ b/.github/TODO.md @@ -1,7 +1,7 @@ # TODOs - [x] set prepare-commit-msg hook -- [] show "new version available" message, look into this commit e146d4d cli.ts file +- [x] show "new version available" message, look into this commit e146d4d cli.ts file - [] make bundle smaller by properly configuring esbuild - [] [build for both mjs and cjs](https://snyk.io/blog/best-practices-create-modern-npm-package/) - [] do // TODOs in the code diff --git a/package.json b/package.json index 11b9881..14d7d13 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "start": "node ./out/cli.cjs", "dev": "ts-node ./src/cli.ts", "build": "rimraf out && esbuild ./src/cli.ts --bundle --outfile=out/cli.cjs --format=cjs --platform=node", - "deploy": "npm run build && npm version patch && npm publish", + "deploy": "npm run build && npm version patch && npm publish --tag latest", "lint": "eslint src --ext ts && tsc --noEmit" }, "devDependencies": { diff --git a/src/cli.ts b/src/cli.ts index e669ce4..82ff083 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -21,11 +21,18 @@ cli( ignoreArgv: (type) => type === 'unknown-flag' || type === 'argument', help: { description: packageJSON.description } }, - () => { + async () => { if (isHookCalled) { - prepareCommitMessageHook(); + await prepareCommitMessageHook(); } else { - commit(); + await commit(); + const { stdout } = await execa('npm', ['view', 'opencommit', 'version']); + + if (stdout !== packageJSON.version) { + outro( + 'new opencommit version is available, update with `npm i -g opencommit`' + ); + } } }, rawArgv