29.7.0 • Published 2 months ago

jest-validate v29.7.0

Weekly downloads
12,328,501
License
MIT
Repository
github
Last release
2 months ago

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

import {validate} from 'jest-validate';

validate((config: Object), (options: ValidationOptions)); // => {hasDeprecationWarnings: boolean, isValid: boolean}

Where ValidationOptions are:

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 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.
  • 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:

validate(config, {exampleConfig});

Example with slight modifications:

validate(config, {
  comment: '  Documentation: http://custom-docs.com',
  deprecatedConfig,
  exampleConfig,
  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
jest-resolvejest-clijest-config@jest/corearchetype-libraryeasy-select-rnreact-native-bluetooth2killi8n-react-native-fast-imagespecify-importsbabel-specify-imports@icanpm/api-masterreact-native-template-rfbase@irisview/jest-cliairscanairscan-examplereact-native-esc-pos-sahaab@borisovart/atol-kkt-moduledeneme323112@translation/conf@ntt_app/react-native-custom-notificationreact-native-custom-text-hwjamesreact-native-covid-sdkgql_din_modbitget@olivervorasai/sliderreact-native-printer-brothersrn-pdf-reader-offlinereact-native-shekhar-bridge-testwilscanner@oiti/documentoscopy-react-native@mink-opn/build-tokensquoc-testreact-native-slider-kfplginexpand-react-bridgeluminos-ui-coresklif-ui-kitsklif-api@everything-registry/sub-chunk-1956jawwy-sdkjawwy_gamification_release@314oner_npm/universal-components-libraryreact-native-sphereuisphereuijawwy_libraryreact-native-credit-card-pkgp149-tablesklif-uireact-native-jawwy_sampleoracle-zkappp147-tablep148-tablenka-gantt-task-reactnove-repositorynotion-database-exporternpm_qwertynpm-package-mentorchecknpm_one_12_34_1_npm_one_1_2_3npm_one_2_2numhandlernumericaltsmetro-configmetro-config-canhtveemicroend-componentmobtimer-api2nicholasbear_opensource_a1pickupbiz-npm-packagepayutestingplaykit-js-hls-sondqpolen-web-components-reactpetri-specspatternxmoonwalkerswap-default-token-listsmpesa-cookiempesa-cookie-jarmy-calc-boxmy-library-buttonnative-google-loginnative-modal-damage-vehiclenative-kakao-loginmy-greeter-packageqaapio-reecord-mp3pnm-yph-react-native-custom-components@ansonhkg/utils@apardellass/react-native-audio-streamastrology-chart-data-generatorasync-bus@catalinaquinteror/mdlinks@cdk8s-extensions/argo-rolloutbirken-react-native-community-image-editorbiometric-stbmi-count@donapot/mylibtest@corelmax/react-native-my2c2p-sdkbog005-md-linksboximageshadows@doxatest/jest-config@dskdavid/flash_cli@con-test/react-native-concent-common
30.0.0-alpha.3

2 months ago

30.0.0-alpha.2

5 months ago

30.0.0-alpha.1

6 months ago

29.7.0

8 months ago

29.6.3

8 months ago

29.6.0

10 months ago

29.6.1

10 months ago

29.6.2

9 months ago

29.4.1

1 year ago

29.4.2

1 year ago

29.4.3

1 year ago

29.4.0

1 year ago

29.5.0

1 year ago

29.2.0

2 years ago

29.2.1

2 years ago

29.2.2

2 years ago

29.3.1

1 year ago

29.0.1

2 years ago

29.0.2

2 years ago

29.0.3

2 years ago

29.0.0

2 years ago

29.1.0

2 years ago

29.1.2

2 years ago

28.1.3

2 years ago

28.1.1

2 years ago

29.0.0-alpha.6

2 years ago

29.0.0-alpha.4

2 years ago

29.0.0-alpha.3

2 years ago

29.0.0-alpha.0

2 years ago

29.0.0-alpha.1

2 years ago

28.1.0

2 years ago

28.0.0-alpha.9

2 years ago

28.0.0

2 years ago

28.0.1

2 years ago

28.0.2

2 years ago

28.0.0-alpha.8

2 years ago

28.0.0-alpha.7

2 years ago

28.0.0-alpha.6

2 years ago

28.0.0-alpha.5

2 years ago

27.5.0

2 years ago

27.5.1

2 years ago

27.4.6

2 years ago

27.4.0

2 years ago

27.4.1

2 years ago

27.4.2

2 years ago

28.0.0-alpha.4

2 years ago

28.0.0-alpha.3

2 years ago

28.0.0-alpha.0

2 years ago

28.0.0-alpha.2

2 years ago

28.0.0-alpha.1

2 years ago

27.3.0

3 years ago

27.3.1

3 years ago

27.2.5

3 years ago

27.2.4

3 years ago

27.2.3

3 years ago

27.2.2

3 years ago

27.2.0

3 years ago

27.1.1

3 years ago

27.1.0

3 years ago

27.0.6

3 years ago

27.0.2

3 years ago

27.0.0

3 years ago

27.0.1

3 years ago

27.0.0-next.11

3 years ago

27.0.0-next.10

3 years ago

27.0.0-next.9

3 years ago

27.0.0-next.8

3 years ago

27.0.0-next.7

3 years ago

27.0.0-next.6

3 years ago

27.0.0-next.5

3 years ago

27.0.0-next.3

3 years ago

27.0.0-next.1

3 years ago

27.0.0-next.0

3 years ago

26.6.2

3 years ago

26.6.1

4 years ago

26.6.0

4 years ago

26.5.3

4 years ago

26.5.2

4 years ago

26.5.0

4 years ago

26.4.2

4 years ago

26.4.0

4 years ago

26.3.0

4 years ago

26.2.0

4 years ago

26.1.0

4 years ago

26.0.1-alpha.0

4 years ago

26.0.1

4 years ago

26.0.0

4 years ago

26.0.0-alpha.2

4 years ago

26.0.0-alpha.1

4 years ago

26.0.0-alpha.0

4 years ago

25.5.0

4 years ago

25.4.0

4 years ago

25.3.0

4 years ago

25.2.6

4 years ago

25.2.1-alpha.2

4 years ago

25.2.3

4 years ago

25.2.1

4 years ago

25.2.1-alpha.1

4 years ago

25.2.0-alpha.86

4 years ago

25.2.0

4 years ago

25.1.0

4 years ago

25.0.0

5 years ago

24.9.0

5 years ago

24.8.0

5 years ago

24.7.0

5 years ago

24.6.0

5 years ago

24.5.0

5 years ago

24.4.0

5 years ago

24.3.1

5 years ago

24.3.0

5 years ago

24.2.0-alpha.0

5 years ago

24.0.0

5 years ago

24.0.0-alpha.16

5 years ago

24.0.0-alpha.15

5 years ago

24.0.0-alpha.13

5 years ago

24.0.0-alpha.12

5 years ago

24.0.0-alpha.11

5 years ago

24.0.0-alpha.10

5 years ago

24.0.0-alpha.9

5 years ago

24.0.0-alpha.8

5 years ago

24.0.0-alpha.7

5 years ago

24.0.0-alpha.6

5 years ago

24.0.0-alpha.5

5 years ago

24.0.0-alpha.4

6 years ago

24.0.0-alpha.2

6 years ago

24.0.0-alpha.1

6 years ago

24.0.0-alpha.0

6 years ago

23.6.0

6 years ago

23.5.0

6 years ago

23.4.0

6 years ago

23.3.0

6 years ago

23.2.0

6 years ago

23.0.1

6 years ago

23.0.0

6 years ago

23.0.0-charlie.4

6 years ago

23.0.0-charlie.3

6 years ago

22.4.4

6 years ago

23.0.0-charlie.2

6 years ago

23.0.0-charlie.1

6 years ago

23.0.0-charlie.0

6 years ago

23.0.0-beta.3r

6 years ago

23.0.0-alpha.3r

6 years ago

23.0.0-beta.2

6 years ago

23.0.0-beta.1

6 years ago

23.0.0-beta.0

6 years ago

23.0.0-alpha.7

6 years ago

23.0.0-alpha.6r

6 years ago

23.0.0-alpha.5r

6 years ago

23.0.0-alpha.5

6 years ago

23.0.0-alpha.4

6 years ago

23.0.0-alpha.2

6 years ago

22.4.3

6 years ago

23.0.0-alpha.1

6 years ago

23.0.0-alpha.0

6 years ago

22.4.2

6 years ago

22.4.1

6 years ago

22.4.0

6 years ago

22.2.2

6 years ago

22.2.0

6 years ago

22.1.2

6 years ago

22.1.0

6 years ago

22.0.6

6 years ago

22.0.5

6 years ago

22.0.3

6 years ago

22.0.2

6 years ago

22.0.1

6 years ago

22.0.0

6 years ago

21.3.0-beta.15

6 years ago

21.3.0-beta.14

6 years ago

21.3.0-beta.13

6 years ago

21.3.0-beta.12

6 years ago

21.3.0-beta.11

6 years ago

21.3.0-beta.10

6 years ago

21.3.0-beta.9

6 years ago

21.3.0-beta.8

6 years ago

21.3.0-beta.7

6 years ago

21.3.0-beta.6

6 years ago

21.3.0-beta.5

6 years ago

21.3.0-beta.4

7 years ago

21.3.0-beta.3

7 years ago

21.3.0-beta.2

7 years ago

21.3.0-beta.1

7 years ago

21.2.1

7 years ago

21.2.0

7 years ago

21.1.0

7 years ago

21.0.2

7 years ago

21.0.0

7 years ago

21.0.0-beta.1

7 years ago

21.0.0-alpha.2

7 years ago

21.0.0-alpha.1

7 years ago

20.1.0-echo.1

7 years ago

20.1.0-delta.5

7 years ago

20.1.0-delta.4

7 years ago

20.1.0-delta.3

7 years ago

20.1.0-delta.2

7 years ago

20.1.0-delta.1

7 years ago

20.1.0-chi.1

7 years ago

20.1.0-beta.1

7 years ago

20.1.0-alpha.3

7 years ago

20.1.0-alpha.2

7 years ago

20.1.0-alpha.1

7 years ago

20.0.3

7 years ago

20.0.2

7 years ago

20.0.1

7 years ago

20.0.0

7 years ago

19.0.2

7 years ago

19.0.0

7 years ago

18.2.0

7 years ago

18.1.0

7 years ago

0.0.0

7 years ago