ajv-schema-builder

0.1.0 • Public • Published

ajv-schema-builder

npm version Build Status Coverage Status

A Fluent schema builder for AJV

Installation

npm install ajv-schema-builder

Usage

const asb = require('ajv-schema-builder');

const schema = asb
  .object()
  .properties({
    id: asb.integer().default(1),
    name: asb.string(),
    type: asb.const('test'),
    role: asb.enum(['user', 'admin']),
    departments: asb.array().items(
      asb.object().properties({
        id: asb.integer().default(2),
        name: asb.string().default('department'),
      }),
     ),
  })
  .required(['id', 'name']);

console.log(schema.json());

Output should be

{
  type: 'object',
  properties: {
    id: { type: 'integer', default: 1 },
    name: { type: 'string' },
    type: { const: 'test' },
    role: { enum: ['user', 'admin'] },
    departments: {
      type: 'array',
      items: {
        type: 'object',
        properties: {
          id: { type: 'integer', default: 2 },
          name: { type: 'string', default: 'department' },
        },
      },
    },
  },
  required: ['id', 'name'],
}

Tests

npm test

Contributing

In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.

Readme

Keywords

none

Package Sidebar

Install

npm i ajv-schema-builder

Weekly Downloads

3

Version

0.1.0

License

MIT

Last publish

Collaborators

  • romanox