35 lines
		
	
	
		
			931 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			931 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
/**
 | 
						|
 * @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;
 | 
						|
};
 |