• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/**
2 * @fileoverview The instance of Ajv validator.
3 * @author Evgeny Poberezkin
4 */
5"use strict";
6
7//------------------------------------------------------------------------------
8// Requirements
9//------------------------------------------------------------------------------
10
11const Ajv = require("ajv"),
12    metaSchema = require("ajv/lib/refs/json-schema-draft-04.json");
13
14//------------------------------------------------------------------------------
15// Public Interface
16//------------------------------------------------------------------------------
17
18module.exports = (additionalOptions = {}) => {
19    const ajv = new Ajv({
20        meta: false,
21        useDefaults: true,
22        validateSchema: false,
23        missingRefs: "ignore",
24        verbose: true,
25        schemaId: "auto",
26        ...additionalOptions
27    });
28
29    ajv.addMetaSchema(metaSchema);
30    // eslint-disable-next-line no-underscore-dangle
31    ajv._opts.defaultMeta = metaSchema.id;
32
33    return ajv;
34};
35