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