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.
		
		
		
		
			
				
					36 lines
				
				761 B
			
		
		
			
		
	
	
					36 lines
				
				761 B
			| 
								 
											4 years 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;
							 | 
						||
| 
								 | 
							
								}
							 |