From dc1ad5a340d1b03ff35d39f267f0b7a827b1a06f Mon Sep 17 00:00:00 2001 From: Aaron Dill <117116764+aarondill@users.noreply.github.com> Date: Sun, 22 Jan 2023 12:04:52 -0600 Subject: [PATCH] feat(cli): added --version and --help options (#282) Co-authored-by: fisker Cheung --- cli.js | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/cli.js b/cli.js index b519b18d..370afd26 100755 --- a/cli.js +++ b/cli.js @@ -1,12 +1,39 @@ #!/usr/bin/env node -import fs from 'node:fs' import { globbySync } from 'globby' +import fs from 'node:fs' import sortPackageJson from './index.js' const isCheckFlag = (argument) => argument === '--check' || argument === '-c' +const isHelpFlag = (argument) => argument === '--help' || argument === '-h' +const isVersionFlag = (argument) => + argument === '--version' || argument === '-v' const cliArguments = process.argv.slice(2) const isCheck = cliArguments.some(isCheckFlag) +const isHelp = cliArguments.some(isHelpFlag) +const isVersion = cliArguments.some(isVersionFlag) + +if (isHelp) { + console.log( + `Usage: sort-package-json [OPTION...] [FILE...] +Sort npm package.json files. Default: ./package.json +Strings passed as files are parsed as globs. + + -c, --check check if FILES are sorted + -h, --help display this help and exit + -v, --version display the version and exit + `, + ) + process.exit(0) +} +if (isVersion) { + const packageJsonUrl = new URL('package.json', import.meta.url) + const packageJsonBuffer = fs.readFileSync(packageJsonUrl) + const { version } = JSON.parse(packageJsonBuffer) + + console.log(`sort-package-json ${version}`) + process.exit(0) +} const patterns = cliArguments.filter((argument) => !isCheckFlag(argument))