Nemo's Parental Misguidance
    Have ideas to improve npm?Join in the discussion! »

    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

    Install

    npm i ajv-oai

    DownloadsWeekly Downloads

    68,774

    Version

    1.2.1

    License

    MIT

    Unpacked Size

    9.49 kB

    Total Files

    11

    Last publish

    Collaborators

    • avatar