A command line JSON Schema validator that supports many file formats. Fork of jessedc/ajv-cli.
npm install pajvCommand line interface for ajv that utilizes any-json to provide validation against many data formats. pajv can validate: CSON, Hjson, JSON, JSON5, TOML, and YAML files using JSON Schema. pajv is a fork of ajv-cli.




- Installation
- Commands
- Help
- Validate data
- Test validation result
- Ajv options
- Version History, License
``sh`
npm install -g pajv
`sh`
pajv help
pajv help validate
pajv help test
This command validates data files against JSON-schema
`sh`
pajv validate -s test/schema.json -d test/valid_data.json
pajv -s test/schema.json -d test/valid_data.json
You can omit validate command name.
#### Parameters
##### -s - file name of JSON-schema
Only one schema can be passed in this parameter
##### -d - JSON data
Multiple data files can be passed, as in -r parameter:
`sh`
pajv -s test/schema.json -d "test/valid*.json"
If some file is invalid exit code will be 1.
##### -r - referenced schemas
The schema in -s parameter can reference any of these schemas with $ref keyword.
Multiple schemas can be passed both by using this parameter mupltiple times and with glob patterns. Glob pattern should be quoted and extensions cannot be omitted.
##### -m - meta-schemas
Schemas can use any of these schemas as a meta-schema (that is the schema used in $schema keyword - it is used to validate the schema itself).
Multiple meta-schemas can be passed, as in -r parameter.
##### -c - custom keywords/formats definitions
You can pass module(s) that define custom keywords/formats. The modules should export a function that accepts Ajv instance as a parameter. The file name should start with ".", it will be resolved relative to the current folder. The package name can also be passed - it will be used in require as is.
For example, you can use -c ajv-keywords to add all keywords from ajv-keywords package or -c ajv-keywords/keywords/typeof to add only typeof keyword.
#### Options
- --errors=: error reporting format. Possible values:js
- (default): JavaScript objectjson
- : JSON with indentation and line-breaksline
- : JSON without indentaion/line-breaks (for easy parsing)text
- : human readable error messages with data paths
- --changes=: detect changes in data after validation.--remove-additional
Data can be modifyed with Ajv options , --use-defaults and --coerce-types).js
The changes are reported in JSON-patch format (RFC6902).
Possible values are (default), json and line (see --errors option).
This command asserts that the result of the validation is as expected.
`sh`
pajv test -s test/schema.json -d test/valid_data.json --valid
pajv test -s test/schema.json -d test/invalid_data.json --invalid
If the option --valid (--invalid) is used for the test to pass (exit code 0) the data file(s) should be valid (invalid).
This command supports the same options and parameters as validate with the exception of --changes.
You can pass the following Ajv options:
|Option|Description|
|---|---|
|--data|use $data references|--all-errors
||collect all errors|--unknown-formats=
||handling of unknown formats|--verbose
||include schema and data in errors|--json-pointers
||report data paths in errors using JSON-pointers|--unique-items=false
||do not validate uniqueItems keyword|--unicode=false
||count unicode pairs as 2 characters|--format=full
||format mode|--schema-id=
||keyword(s) to use as schema ID|--extend-refs=
||validation of other keywords when $ref is present in the schema|--missing-refs=
||handle missing referenced schemas (true/ignore/fail)|--inline-refs=
||referenced schemas compilation mode (true/false/\--remove-additional
||remove additional properties (true/all/failing)|--use-defaults
||replace missing properties/items with the values from default keyword|--coerce-types
||change type of data to match type keyword|--multiple-of-precision
||precision of multipleOf, pass integer number|--error-data-path=property
||data path in errors|--messages=false`|do not include text messages in errors|
|
Options can be passed in either dash-case and camelCase.
See Ajv Options for more information.
See https://github.com/json-schema-everywhere/pajv/releases
MIT