| /** | |
|  * @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; | |
| };
 |