ajv-oai
TypeScript icon, indicating that this package has built-in type declarations

1.2.1 • Public • Published

License Node Version NPM Version Build Status Test Coverage Downloads Dependency Status

Ajv-OAI

OpenAPI's JsonSchema validator, Powered by Ajv.

Support formats in dataTypeFormat, except binary format.

Installation

npm install ajv-oai --save

Usage

With draft 04 by default:

const ajv = new AjvOAI();

With a custom meta schema from AJV lib

const ajv = new AjvOAI({ metaSchema: 'json-schema-draft-06' });

Default Options

ajv-oai sets followings as ajv's default options, you can override this options as need.

{
      schemaId: 'auto',
      format: 'full',
      coerceTypes: true,
      unknownFormats: 'ignore',
      useDefaults: true,
}

Example

const ajv = new AjvOAI();
 
console.log(ajv.compile({ type: 'integer', format: 'int32' })(2147483648));
console.log(ajv.compile({ type: 'integer', format: 'int32' })(-2147483649));
console.log(ajv.compile({ type: 'integer', format: 'int32' })(1.23));
console.log(ajv.compile({ type: 'integer', format: 'int32' })(123));
> false
> false
> false
> true
 
console.log(ajv.compile({ type: 'integer', format: 'int64' })(Number.MAX_VALUE));
console.log(ajv.compile({ type: 'integer', format: 'int64' })(Number.MIN_VALUE));
console.log(ajv.compile({ type: 'integer', format: 'int64' })(1.23));
console.log(ajv.compile({ type: 'integer', format: 'int64' })(123));
> false
> false
> false
> true
 
console.log(ajv.compile({ type: 'number', format: 'float' })(Number.MAX_VALUE));
console.log(ajv.compile({ type: 'number', format: 'float' })(Number.MIN_VALUE));
console.log(ajv.compile({ type: 'number', format: 'float' })(1.23));
console.log(ajv.compile({ type: 'number', format: 'float' })(123));
> false
> false
> true
> true
 
console.log(ajv.compile({ type: 'number', format: 'double' })(Number.MAX_VALUE));
console.log(ajv.compile({ type: 'number', format: 'double' })(Number.MIN_VALUE));
console.log(ajv.compile({ type: 'number', format: 'double' })(1.23));
console.log(ajv.compile({ type: 'number', format: 'double' })(123));
> true
> true
> true
> true
 
console.log(ajv.compile({ type: 'string', format: 'byte' })('MTIz'));
console.log(ajv.compile({ type: 'string', format: 'byte' })('abc'));
console.log(ajv.compile({ type: 'string', format: 'byte' })(1));
console.log(ajv.compile({ type: 'string', format: 'byte' })('5L2g5aW95ZWK'));
> true
> false
> false
> true

Package Sidebar

Install

npm i ajv-oai

Weekly Downloads

23,013

Version

1.2.1

License

MIT

Unpacked Size

9.49 kB

Total Files

11

Last publish

Collaborators

  • bitebit