You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
993 B
34 lines
993 B
/** |
|
* @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; |
|
};
|
|
|