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.
		
		
		
		
		
			
		
			
	
	
		
			36 lines
		
	
	
		
			761 B
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			761 B
		
	
	
	
		
			JavaScript
		
	
| 
											9 months ago
										 | 'use strict'; | ||
|  | 
 | ||
|  | var KEYWORDS = require('./keywords'); | ||
|  | 
 | ||
|  | module.exports = defineKeywords; | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Defines one or several keywords in ajv instance | ||
|  |  * @param  {Ajv} ajv validator instance | ||
|  |  * @param  {String|Array<String>|undefined} keyword keyword(s) to define | ||
|  |  * @return {Ajv} ajv instance (for chaining) | ||
|  |  */ | ||
|  | function defineKeywords(ajv, keyword) { | ||
|  |   if (Array.isArray(keyword)) { | ||
|  |     for (var i=0; i<keyword.length; i++) | ||
|  |       get(keyword[i])(ajv); | ||
|  |     return ajv; | ||
|  |   } | ||
|  |   if (keyword) { | ||
|  |     get(keyword)(ajv); | ||
|  |     return ajv; | ||
|  |   } | ||
|  |   for (keyword in KEYWORDS) get(keyword)(ajv); | ||
|  |   return ajv; | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | defineKeywords.get = get; | ||
|  | 
 | ||
|  | function get(keyword) { | ||
|  |   var defFunc = KEYWORDS[keyword]; | ||
|  |   if (!defFunc) throw new Error('Unknown keyword ' + keyword); | ||
|  |   return defFunc; | ||
|  | } |