aboutsummaryrefslogtreecommitdiff
path: root/node_modules/jest-validate
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-validate
parent963b7a41feb29cc4be090a2446bdfe0c1f1bcd81 (diff)
add linting (and some initial fixes)
Diffstat (limited to 'node_modules/jest-validate')
-rw-r--r--node_modules/jest-validate/.npmignore3
-rw-r--r--node_modules/jest-validate/README.md143
-rw-r--r--node_modules/jest-validate/build/condition.js26
-rw-r--r--node_modules/jest-validate/build/defaultConfig.js34
-rw-r--r--node_modules/jest-validate/build/deprecated.js40
-rw-r--r--node_modules/jest-validate/build/errors.js44
-rw-r--r--node_modules/jest-validate/build/exampleConfig.js32
-rw-r--r--node_modules/jest-validate/build/index.js18
-rw-r--r--node_modules/jest-validate/build/types.js11
-rw-r--r--node_modules/jest-validate/build/utils.js68
-rw-r--r--node_modules/jest-validate/build/validate.js69
-rw-r--r--node_modules/jest-validate/build/warnings.js45
-rw-r--r--node_modules/jest-validate/package.json16
13 files changed, 549 insertions, 0 deletions
diff --git a/node_modules/jest-validate/.npmignore b/node_modules/jest-validate/.npmignore
new file mode 100644
index 000000000..85e48fe7b
--- /dev/null
+++ b/node_modules/jest-validate/.npmignore
@@ -0,0 +1,3 @@
+**/__mocks__/**
+**/__tests__/**
+src
diff --git a/node_modules/jest-validate/README.md b/node_modules/jest-validate/README.md
new file mode 100644
index 000000000..3e130b38c
--- /dev/null
+++ b/node_modules/jest-validate/README.md
@@ -0,0 +1,143 @@
+# jest-validate
+
+Generic configuration validation tool that helps you with warnings, errors and deprecation messages as well as showing users examples of correct configuration.
+
+```
+npm install --save jest-validate
+```
+
+## Usage
+
+```js
+import {validate} from 'jest-validate';
+
+validate(
+ config: Object,
+ options: ValidationOptions,
+); // => {hasDeprecationWarnings: boolean, isValid: boolean}
+```
+
+Where `ValidationOptions` are:
+```js
+type ValidationOptions = {
+ comment?: string,
+ condition?: (option: any, validOption: any) => boolean,
+ deprecate?: (
+ config: Object,
+ option: string,
+ deprecatedOptions: Object,
+ options: ValidationOptions
+ ) => true,
+ deprecatedConfig?: {[key: string]: Function},
+ error?: (
+ option: string,
+ received: any,
+ defaultValue: any,
+ options: ValidationOptions,
+ ) => void,
+ exampleConfig: Object,
+ title?: Title,
+ unknown?: (
+ config: Object,
+ exampleConfig: Object,
+ option: string,
+ options: ValidationOptions
+ ) => void,
+}
+
+type Title = {|
+ deprecation?: string,
+ error?: string,
+ warning?: string,
+|}
+```
+
+`exampleConfig` is the only option required.
+
+## API
+
+By default `jest-validate` will print generic warning and error messages. You can however customize this behavior by providing `options: ValidationOptions` object as a second argument:
+
+Almost anything can be overwritten to suite your needs.
+
+### Options
+
+* `comment` – optional string to be rendered bellow error/warning message.
+* `condition` – an optional function with validation condition.
+* `deprecate`, `error`, `unknown` – optional functions responsible for displaying warning and error messages.
+* `deprecatedConfig` – optional object with deprecated config keys.
+* `exampleConfig` – the only **required** option with configuration against which you'd like to test.
+* `title` – optional object of titles for errors and messages.
+
+You will find examples of `condition`, `deprecate`, `error`, `unknown`, and `deprecatedConfig` inside source of this repository, named respectively.
+
+## Examples
+
+Minimal example:
+
+```js
+validate(config, {exampleConfig});
+```
+
+Example with slight modifications:
+
+```js
+validate(config, {
+ comment: ' Documentation: http://custom-docs.com',
+ exampleConfig,
+ deprecatedConfig,
+ title: {
+ deprecation: 'Custom Deprecation',
+ // leaving 'error' and 'warning' as default
+ }
+});
+```
+
+This will output:
+
+#### Warning:
+
+```
+● Validation Warning:
+
+ Unknown option transformx with value "<rootDir>/node_modules/babel-jest" was found.
+ This is either a typing error or a user mistake. Fixing it will remove this message.
+
+ Documentation: http://custom-docs.com
+```
+
+#### Error:
+
+```
+● Validation Error:
+
+ Option transform must be of type:
+ object
+ but instead received:
+ string
+
+ Example:
+ {
+ "transform": {"^.+\\.js$": "<rootDir>/preprocessor.js"}
+ }
+
+ Documentation: http://custom-docs.com
+```
+
+#### Deprecation
+Based on `deprecatedConfig` object with proper deprecation messages. Note custom title:
+
+```
+Custom Deprecation:
+
+ Option scriptPreprocessor was replaced by transform, which support multiple preprocessors.
+
+ Jest now treats your current configuration as:
+ {
+ "transform": {".*": "xxx"}
+ }
+
+ Please update your configuration.
+
+ Documentation: http://custom-docs.com
+```
diff --git a/node_modules/jest-validate/build/condition.js b/node_modules/jest-validate/build/condition.js
new file mode 100644
index 000000000..05b49b15f
--- /dev/null
+++ b/node_modules/jest-validate/build/condition.js
@@ -0,0 +1,26 @@
+/**
+ * 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 toString = Object.prototype.toString;
+
+const validationCondition = (
+option,
+validOption) =>
+{
+ return (
+ option === null ||
+ option === undefined ||
+ toString.call(option) === toString.call(validOption));
+
+};
+
+module.exports = validationCondition; \ No newline at end of file
diff --git a/node_modules/jest-validate/build/defaultConfig.js b/node_modules/jest-validate/build/defaultConfig.js
new file mode 100644
index 000000000..6c78233df
--- /dev/null
+++ b/node_modules/jest-validate/build/defaultConfig.js
@@ -0,0 +1,34 @@
+/**
+ * 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';var _require =
+
+
+
+require('./deprecated');const deprecationWarning = _require.deprecationWarning;var _require2 =
+require('./warnings');const unknownOptionWarning = _require2.unknownOptionWarning;var _require3 =
+require('./errors');const errorMessage = _require3.errorMessage;
+const exampleConfig = require('./exampleConfig');
+const validationCondition = require('./condition');var _require4 =
+require('./utils');const ERROR = _require4.ERROR,DEPRECATION = _require4.DEPRECATION,WARNING = _require4.WARNING;
+
+module.exports = {
+ comment: '',
+ condition: validationCondition,
+ deprecate: deprecationWarning,
+ deprecatedConfig: {},
+ error: errorMessage,
+ exampleConfig,
+ title: {
+ deprecation: DEPRECATION,
+ error: ERROR,
+ warning: WARNING },
+
+ unknown: unknownOptionWarning }; \ No newline at end of file
diff --git a/node_modules/jest-validate/build/deprecated.js b/node_modules/jest-validate/build/deprecated.js
new file mode 100644
index 000000000..5de6db0c4
--- /dev/null
+++ b/node_modules/jest-validate/build/deprecated.js
@@ -0,0 +1,40 @@
+/**
+ * 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';var _require =
+
+
+
+require('./utils');const logValidationWarning = _require.logValidationWarning,DEPRECATION = _require.DEPRECATION;
+
+const deprecationMessage = (message, options) => {
+ const comment = options.comment;
+ const name = options.title && options.title.deprecation || DEPRECATION;
+
+ logValidationWarning(name, message, comment);
+};
+
+const deprecationWarning = (
+config,
+option,
+deprecatedOptions,
+options) =>
+{
+ if (option in deprecatedOptions) {
+ deprecationMessage(deprecatedOptions[option](config), options);
+
+ return true;
+ }
+
+ return false;
+};
+
+module.exports = {
+ deprecationWarning }; \ No newline at end of file
diff --git a/node_modules/jest-validate/build/errors.js b/node_modules/jest-validate/build/errors.js
new file mode 100644
index 000000000..670512349
--- /dev/null
+++ b/node_modules/jest-validate/build/errors.js
@@ -0,0 +1,44 @@
+/**
+ * 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');var _require =
+require('./utils');const format = _require.format,ValidationError = _require.ValidationError,ERROR = _require.ERROR;var _require2 =
+require('jest-matcher-utils');const getType = _require2.getType;
+
+const errorMessage = (
+option,
+received,
+defaultValue,
+options) =>
+{
+ const message =
+ ` Option ${chalk.bold(`"${option}"`)} must be of type:
+ ${chalk.bold.green(getType(defaultValue))}
+ but instead received:
+ ${chalk.bold.red(getType(received))}
+
+ Example:
+ {
+ ${chalk.bold(`"${option}"`)}: ${chalk.bold(format(defaultValue))}
+ }`;
+
+ const comment = options.comment;
+ const name = options.title && options.title.error || ERROR;
+
+ throw new ValidationError(name, message, comment);
+};
+
+module.exports = {
+ ValidationError,
+ errorMessage }; \ No newline at end of file
diff --git a/node_modules/jest-validate/build/exampleConfig.js b/node_modules/jest-validate/build/exampleConfig.js
new file mode 100644
index 000000000..2e26dc341
--- /dev/null
+++ b/node_modules/jest-validate/build/exampleConfig.js
@@ -0,0 +1,32 @@
+/**
+ * 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 config = {
+ comment: ' A comment',
+ condition: (option, validOption) => true,
+ deprecate: (config, option, deprecatedOptions, options) => false,
+ deprecatedConfig: {
+ key: config => {} },
+
+ error: (option, received, defaultValue, options) => {},
+ exampleConfig: { key: 'value', test: 'case' },
+ title: {
+ deprecation: 'Deprecation Warning',
+ error: 'Validation Error',
+ warning: 'Validation Warning' },
+
+ unknown: (config, option, options) => {} };
+
+
+module.exports = config; \ No newline at end of file
diff --git a/node_modules/jest-validate/build/index.js b/node_modules/jest-validate/build/index.js
new file mode 100644
index 000000000..cbc8b0666
--- /dev/null
+++ b/node_modules/jest-validate/build/index.js
@@ -0,0 +1,18 @@
+/**
+ * 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';
+
+module.exports = {
+ ValidationError: require('./errors').ValidationError,
+ createDidYouMeanMessage: require('./utils').createDidYouMeanMessage,
+ format: require('./utils').format,
+ logValidationWarning: require('./utils').logValidationWarning,
+ validate: require('./validate') }; \ No newline at end of file
diff --git a/node_modules/jest-validate/build/types.js b/node_modules/jest-validate/build/types.js
new file mode 100644
index 000000000..01523b94f
--- /dev/null
+++ b/node_modules/jest-validate/build/types.js
@@ -0,0 +1,11 @@
+/**
+ * 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'; \ No newline at end of file
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
diff --git a/node_modules/jest-validate/build/validate.js b/node_modules/jest-validate/build/validate.js
new file mode 100644
index 000000000..870a3ece4
--- /dev/null
+++ b/node_modules/jest-validate/build/validate.js
@@ -0,0 +1,69 @@
+/**
+ * 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 defaultConfig = require('./defaultConfig');
+
+const _validate = (config, options) => {
+ let hasDeprecationWarnings = false;
+
+ for (const key in config) {
+ if (
+ options.deprecatedConfig &&
+ key in options.deprecatedConfig &&
+ typeof options.deprecate === 'function')
+ {
+ const isDeprecatedKey = options.deprecate(
+ config,
+ key,
+ options.deprecatedConfig,
+ options);
+
+
+ hasDeprecationWarnings = hasDeprecationWarnings || isDeprecatedKey;
+ } else if (hasOwnProperty.call(options.exampleConfig, key)) {
+ if (
+ typeof options.condition === 'function' &&
+ typeof options.error === 'function' &&
+ !options.condition(config[key], options.exampleConfig[key]))
+ {
+ options.error(key, config[key], options.exampleConfig[key], options);
+ }
+ } else {
+ options.unknown &&
+ options.unknown(config, options.exampleConfig, key, options);
+ }
+ }
+
+ return { hasDeprecationWarnings };
+};
+
+const validate = (config, options) => {
+ _validate(options, defaultConfig); // validate against jest-validate config
+
+ const defaultedOptions = Object.assign(
+ {},
+ defaultConfig,
+ options,
+ { title: Object.assign({}, defaultConfig.title, options.title) });var _validate2 =
+
+
+ _validate(config, defaultedOptions);const hasDeprecationWarnings = _validate2.hasDeprecationWarnings;
+
+ return {
+ hasDeprecationWarnings,
+ isValid: true };
+
+};
+
+module.exports = validate; \ No newline at end of file
diff --git a/node_modules/jest-validate/build/warnings.js b/node_modules/jest-validate/build/warnings.js
new file mode 100644
index 000000000..8c4b57e89
--- /dev/null
+++ b/node_modules/jest-validate/build/warnings.js
@@ -0,0 +1,45 @@
+/**
+ * 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');var _require =
+
+
+
+
+
+require('./utils');const format = _require.format,logValidationWarning = _require.logValidationWarning,createDidYouMeanMessage = _require.createDidYouMeanMessage,WARNING = _require.WARNING;
+
+const unknownOptionWarning = (
+config,
+exampleConfig,
+option,
+options) =>
+{
+ const didYouMean =
+ createDidYouMeanMessage(option, Object.keys(exampleConfig));
+ /* eslint-disable max-len */
+ const message =
+ ` Unknown option ${chalk.bold(`"${option}"`)} with value ${chalk.bold(format(config[option]))} was found.` + (
+ didYouMean && ` ${didYouMean}`) +
+ `\n This is probably a typing mistake. Fixing it will remove this message.`;
+ /* eslint-enable max-len */
+
+ const comment = options.comment;
+ const name = options.title && options.title.warning || WARNING;
+
+ logValidationWarning(name, message, comment);
+};
+
+module.exports = {
+ unknownOptionWarning }; \ No newline at end of file
diff --git a/node_modules/jest-validate/package.json b/node_modules/jest-validate/package.json
new file mode 100644
index 000000000..2b636cd9a
--- /dev/null
+++ b/node_modules/jest-validate/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "jest-validate",
+ "version": "19.0.2",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/facebook/jest.git"
+ },
+ "license": "BSD-3-Clause",
+ "main": "build/index.js",
+ "dependencies": {
+ "chalk": "^1.1.1",
+ "jest-matcher-utils": "^19.0.0",
+ "leven": "^2.0.0",
+ "pretty-format": "^19.0.0"
+ }
+}