39 lines
		
	
	
		
			817 B
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			817 B
		
	
	
	
		
			JavaScript
		
	
	
	
'use strict';
 | 
						|
 | 
						|
var util = require('./_util');
 | 
						|
 | 
						|
module.exports = function defFunc(ajv) {
 | 
						|
  if (ajv.RULES.keywords.switch && ajv.RULES.keywords.if) return;
 | 
						|
 | 
						|
  var metaSchemaRef = util.metaSchemaRef(ajv);
 | 
						|
 | 
						|
  defFunc.definition = {
 | 
						|
    inline: require('./dotjs/switch'),
 | 
						|
    statements: true,
 | 
						|
    errors: 'full',
 | 
						|
    metaSchema: {
 | 
						|
      type: 'array',
 | 
						|
      items: {
 | 
						|
        required: [ 'then' ],
 | 
						|
        properties: {
 | 
						|
          'if': metaSchemaRef,
 | 
						|
          'then': {
 | 
						|
            anyOf: [
 | 
						|
              { type: 'boolean' },
 | 
						|
              metaSchemaRef
 | 
						|
            ]
 | 
						|
          },
 | 
						|
          'continue': { type: 'boolean' }
 | 
						|
        },
 | 
						|
        additionalProperties: false,
 | 
						|
        dependencies: {
 | 
						|
          'continue': [ 'if' ]
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  };
 | 
						|
 | 
						|
  ajv.addKeyword('switch', defFunc.definition);
 | 
						|
  return ajv;
 | 
						|
};
 |