| '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; | 
| } |