/** * @fileoverview The instance of Ajv validator. * @author Evgeny Poberezkin */ 'use strict'; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ const Ajv = require('ajv'), metaSchema = require('ajv/lib/refs/json-schema-draft-04.json'); //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ module.exports = (additionalOptions = {}) => { const ajv = new Ajv({ meta: false, useDefaults: true, validateSchema: false, missingRefs: 'ignore', verbose: true, schemaId: 'auto', ...additionalOptions, }); ajv.addMetaSchema(metaSchema); // eslint-disable-next-line no-underscore-dangle -- Ajv's API ajv._opts.defaultMeta = metaSchema.id; return ajv; };