Projekt

Obecné

Profil

Stáhnout (761 Bajtů) Statistiky
| Větev: | Revize:
1
'use strict';
2

    
3
var KEYWORDS = require('./keywords');
4

    
5
module.exports = defineKeywords;
6

    
7

    
8
/**
9
 * Defines one or several keywords in ajv instance
10
 * @param  {Ajv} ajv validator instance
11
 * @param  {String|Array<String>|undefined} keyword keyword(s) to define
12
 * @return {Ajv} ajv instance (for chaining)
13
 */
14
function defineKeywords(ajv, keyword) {
15
  if (Array.isArray(keyword)) {
16
    for (var i=0; i<keyword.length; i++)
17
      get(keyword[i])(ajv);
18
    return ajv;
19
  }
20
  if (keyword) {
21
    get(keyword)(ajv);
22
    return ajv;
23
  }
24
  for (keyword in KEYWORDS) get(keyword)(ajv);
25
  return ajv;
26
}
27

    
28

    
29
defineKeywords.get = get;
30

    
31
function get(keyword) {
32
  var defFunc = KEYWORDS[keyword];
33
  if (!defFunc) throw new Error('Unknown keyword ' + keyword);
34
  return defFunc;
35
}
(3-3/4)