From d139006c98734dda63a5822bbfb6ea0e55e5da70 Mon Sep 17 00:00:00 2001 From: ikatyang Date: Thu, 7 Sep 2017 10:18:20 +0800 Subject: [PATCH] refactor(cli): extract validate-related functions --- src/cli-util.js | 4 ++-- src/cli-validator.js | 17 +++++++++++++++++ src/cli.js | 34 ++++++++++++++-------------------- 3 files changed, 33 insertions(+), 22 deletions(-) create mode 100644 src/cli-validator.js diff --git a/src/cli-util.js b/src/cli-util.js index 201d1617..4fa65234 100644 --- a/src/cli-util.js +++ b/src/cli-util.js @@ -312,8 +312,8 @@ function eachFilename(argv, patterns, callback) { } } -function formatFiles(argv, filepatterns) { - eachFilename(argv, filepatterns, (filename, options) => { +function formatFiles(argv) { + eachFilename(argv, argv.__filePatterns, (filename, options) => { if (argv["write"]) { // Don't use `console.log` here since we need to replace this line. process.stdout.write(filename); diff --git a/src/cli-validator.js b/src/cli-validator.js new file mode 100644 index 00000000..1cece4ac --- /dev/null +++ b/src/cli-validator.js @@ -0,0 +1,17 @@ +"use strict"; + +function validateArgv(argv) { + if (argv["write"] && argv["debug-check"]) { + console.error("Cannot use --write and --debug-check together."); + process.exit(1); + } + + if (argv["find-config-path"] && argv.__filePatterns.length) { + console.error("Cannot use --find-config-path with multiple files"); + process.exit(1); + } +} + +module.exports = { + validateArgv +}; diff --git a/src/cli.js b/src/cli.js index 0f1ae78b..f2630c61 100644 --- a/src/cli.js +++ b/src/cli.js @@ -5,43 +5,37 @@ const minimist = require("minimist"); const prettier = eval("require")("../index"); const constant = require("./cli-constant"); const util = require("./cli-util"); +const validator = require("./cli-validator"); function run(args) { const argv = minimist(args, constant.options); argv.__args = args; + argv.__filePatterns = argv["_"]; + + validator.validateArgv(argv); if (argv["version"]) { console.log(prettier.version); process.exit(0); } - const filepatterns = argv["_"]; - const stdin = argv["stdin"] || (!filepatterns.length && !process.stdin.isTTY); - - if (argv["write"] && argv["debug-check"]) { - console.error("Cannot use --write and --debug-check together."); - process.exit(1); - } - - if (argv["find-config-path"] && filepatterns.length) { - console.error("Cannot use --find-config-path with multiple files"); - process.exit(1); - } - - if ( - argv["help"] || - (!filepatterns.length && !stdin && !argv["find-config-path"]) - ) { + if (argv["help"]) { console.log(constant.usage); - process.exit(argv["help"] ? 0 : 1); + process.exit(0); } + const hasFilePatterns = argv.__filePatterns.length !== 0; + const useStdin = argv["stdin"] || (!hasFilePatterns && !process.stdin.isTTY); + if (argv["find-config-path"]) { util.resolveConfig(argv["find-config-path"]); - } else if (stdin) { + } else if (useStdin) { util.formatStdin(argv); + } else if (hasFilePatterns) { + util.formatFiles(argv); } else { - util.formatFiles(argv, filepatterns); + console.log(constant.usage); + process.exit(1); } }