aboutsummaryrefslogtreecommitdiff
path: root/node_modules/jest-validate/build/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/jest-validate/build/utils.js')
-rw-r--r--node_modules/jest-validate/build/utils.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/node_modules/jest-validate/build/utils.js b/node_modules/jest-validate/build/utils.js
new file mode 100644
index 000000000..f89d53b61
--- /dev/null
+++ b/node_modules/jest-validate/build/utils.js
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2014-present, 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');
+const BULLET = chalk.bold('\u25cf');
+const DEPRECATION = `${BULLET} Deprecation Warning`;
+const ERROR = `${BULLET} Validation Error`;
+const WARNING = `${BULLET} Validation Warning`;
+
+const format = value =>
+typeof value === 'function' ?
+value.toString() :
+require('pretty-format')(value, { min: true });
+
+class ValidationError extends Error {
+
+
+
+ constructor(name, message, comment) {
+ super();
+ comment = comment ? '\n\n' + comment : '\n';
+ this.name = '';
+ this.message = chalk.red(chalk.bold(name) + ':\n\n' + message + comment);
+ Error.captureStackTrace(this, () => {});
+ }}
+
+
+const logValidationWarning = (
+name,
+message,
+comment) =>
+{
+ comment = comment ? '\n\n' + comment : '\n';
+ console.warn(chalk.yellow(chalk.bold(name) + ':\n\n' + message + comment));
+};
+
+const createDidYouMeanMessage = (
+unrecognized,
+allowedOptions) =>
+{
+ const leven = require('leven');
+ const suggestion = allowedOptions.find(option => {
+ const steps = leven(option, unrecognized);
+ return steps < 3;
+ });
+
+ return suggestion ?
+ `Did you mean ${chalk.bold(format(suggestion))}?` :
+ '';
+};
+
+module.exports = {
+ DEPRECATION,
+ ERROR,
+ ValidationError,
+ WARNING,
+ createDidYouMeanMessage,
+ format,
+ logValidationWarning }; \ No newline at end of file