You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			25 lines
		
	
	
		
			531 B
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			531 B
		
	
	
	
		
			JavaScript
		
	
| 
											9 months ago
										 | 'use strict'; | ||
|  | 
 | ||
|  | module.exports = function defFunc(ajv) { | ||
|  |   defFunc.definition = { | ||
|  |     type: 'object', | ||
|  |     macro: function (schema) { | ||
|  |       if (schema.length == 0) return true; | ||
|  |       if (schema.length == 1) return {required: schema}; | ||
|  |       var schemas = schema.map(function (prop) { | ||
|  |         return {required: [prop]}; | ||
|  |       }); | ||
|  |       return {anyOf: schemas}; | ||
|  |     }, | ||
|  |     metaSchema: { | ||
|  |       type: 'array', | ||
|  |       items: { | ||
|  |         type: 'string' | ||
|  |       } | ||
|  |     } | ||
|  |   }; | ||
|  | 
 | ||
|  |   ajv.addKeyword('anyRequired', defFunc.definition); | ||
|  |   return ajv; | ||
|  | }; |