BLUE
PHP 7.4.33
Path:
/var/www/podio-api-client/node_modules/jest-validate
Run
Logout
Edit File
Size: 4.95 KB
Close
/var/www/podio-api-client/node_modules/jest-validate/README.md
Text
Base64
# jest-validate Generic configuration validation tool that helps you with warnings, errors and deprecation messages as well as showing users examples of correct configuration. ```bash npm install --save jest-validate ``` ## Usage ```js import {validate} from 'jest-validate'; validate(config, validationOptions); // => {hasDeprecationWarnings: boolean, isValid: boolean} ``` Where `ValidationOptions` are: ```ts type ValidationOptions = { comment?: string; condition?: (option: unknown, validOption: unknown) => boolean; deprecate?: ( config: Record<string, unknown>, option: string, deprecatedOptions: DeprecatedOptions, options: ValidationOptions, ) => boolean; deprecatedConfig?: DeprecatedOptions; error?: ( option: string, received: unknown, defaultValue: unknown, options: ValidationOptions, path?: Array<string>, ) => void; exampleConfig: Record<string, unknown>; recursive?: boolean; recursiveBlacklist?: Array<string>; recursiveDenylist?: Array<string>; title?: Title; unknown?: ( config: Record<string, unknown>, exampleConfig: Record<string, unknown>, option: string, options: ValidationOptions, path?: Array<string>, ) => 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 - `recursiveDenylist` – optional array of string keyPaths that should be excluded from deep (recursive) validation. - `comment` – optional string to be rendered below 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. - `recursive` - optional boolean determining whether recursively compare `exampleConfig` to `config` (default: `true`). - `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. ## exampleConfig syntax `exampleConfig` should be an object with key/value pairs that contain an example of a valid value for each key. A configuration value is considered valid when: - it matches the JavaScript type of the example value, e.g. `string`, `number`, `array`, `boolean`, `function`, or `object` - it is `null` or `undefined` - it matches the Javascript type of any of arguments passed to `MultipleValidOptions(...)` The last condition is a special syntax that allows validating where more than one type is permissible; see example below. It's acceptable to have multiple values of the same type in the example, so you can also use this syntax to provide more than one example. When a validation failure occurs, the error message will show all other values in the array as examples. ## Examples Minimal example: ```js validate(config, {exampleConfig}); ``` Example with slight modifications: ```js validate(config, { comment: ' Documentation: http://custom-docs.com', deprecatedConfig, exampleConfig, title: { deprecation: 'Custom Deprecation', // leaving 'error' and 'warning' as default }, }); ``` This will output: #### Warning: ```bash ● 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: ```bash ● Validation Error: Option transform must be of type: object but instead received: string Example: { "transform": { "\\.js$": "<rootDir>/preprocessor.js" } } Documentation: http://custom-docs.com ``` ## Example validating multiple types ```js import {multipleValidOptions} from 'jest-validate'; validate(config, { // `bar` will accept either a string or a number bar: multipleValidOptions('string is ok', 2), }); ``` #### Error: ```bash ● Validation Error: Option foo must be of type: string or number but instead received: array Example: { "bar": "string is ok" } or { "bar": 2 } Documentation: http://custom-docs.com ``` #### Deprecation Based on `deprecatedConfig` object with proper deprecation messages. Note custom title: ```bash 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 ```
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 2 × Files: 3
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
build
DIR
-
drwxr-xr-x
2023-12-27 12:33:09
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
node_modules
DIR
-
drwxr-xr-x
2023-12-27 12:33:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
LICENSE
1.06 KB
lrw-r--r--
2023-12-27 12:33:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
package.json
843 B
lrw-r--r--
2023-12-27 12:33:09
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
README.md
4.95 KB
lrw-r--r--
2023-12-27 12:33:09
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).