aboutsummaryrefslogtreecommitdiff
path: root/node_modules/jest-util/build/validateCLIOptions.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-28 00:38:50 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-28 00:40:43 +0200
commit7fff4499fd915bcea3fa93b1aa8b35f4fe7a6027 (patch)
tree6de9a1aebd150a23b7f8c273ec657a5d0a18fe3e /node_modules/jest-util/build/validateCLIOptions.js
parent963b7a41feb29cc4be090a2446bdfe0c1f1bcd81 (diff)
add linting (and some initial fixes)
Diffstat (limited to 'node_modules/jest-util/build/validateCLIOptions.js')
-rw-r--r--node_modules/jest-util/build/validateCLIOptions.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/node_modules/jest-util/build/validateCLIOptions.js b/node_modules/jest-util/build/validateCLIOptions.js
new file mode 100644
index 000000000..5c20feabb
--- /dev/null
+++ b/node_modules/jest-util/build/validateCLIOptions.js
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2014, Facebook, Inc. All rights reserved.
+ *
+ * This source code is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree. An additional grant
+ * of patent rights can be found in the PATENTS file in the same directory.
+ *
+ *
+ */
+
+'use strict';
+
+const chalk = require('chalk');var _require =
+
+
+
+
+require('jest-validate');const ValidationError = _require.ValidationError,format = _require.format,createDidYouMeanMessage = _require.createDidYouMeanMessage;
+
+const BULLET = chalk.bold('\u25cf');
+
+const createCLIValidationError = (
+unrecognizedOptions,
+allowedOptions) =>
+{
+ let title = `${BULLET} Unrecognized CLI Parameter`;
+ let message;
+ const comment =
+ ` ${chalk.bold('CLI Options Documentation')}:\n` +
+ ` http://facebook.github.io/jest/docs/cli.html\n`;
+
+ if (unrecognizedOptions.length === 1) {
+ const unrecognized = unrecognizedOptions[0];
+ const didYouMeanMessage = createDidYouMeanMessage(
+ unrecognized,
+ Array.from(allowedOptions));
+
+ message = ` Unrecognized option ${chalk.bold(format(unrecognized))}.` + (
+ didYouMeanMessage ? ` ${didYouMeanMessage}` : '');
+ } else {
+ title += 's';
+ message =
+ ` Following options were not recognized:\n` +
+ ` ${chalk.bold(format(unrecognizedOptions))}`;
+ }
+
+ return new ValidationError(title, message, comment);
+};
+
+const validateCLIOptions = (argv, options) => {
+ const yargsSpecialOptions = ['$0', '_', 'help', 'h'];
+ const allowedOptions = Object.keys(options).reduce((acc, option) =>
+ acc.
+ add(option).
+ add(options[option].alias || option),
+ new Set(yargsSpecialOptions));
+
+ const unrecognizedOptions = Object.keys(argv).filter(arg =>
+ !allowedOptions.has(arg));
+
+
+ if (unrecognizedOptions.length) {
+ throw createCLIValidationError(unrecognizedOptions, allowedOptions);
+ }
+
+ return true;
+};
+
+module.exports = validateCLIOptions; \ No newline at end of file