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.
		
		
		
		
			
				
					50 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					50 lines
				
				1.0 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var KEYWORDS = [
							 | 
						||
| 
								 | 
							
								  'multipleOf',
							 | 
						||
| 
								 | 
							
								  'maximum',
							 | 
						||
| 
								 | 
							
								  'exclusiveMaximum',
							 | 
						||
| 
								 | 
							
								  'minimum',
							 | 
						||
| 
								 | 
							
								  'exclusiveMinimum',
							 | 
						||
| 
								 | 
							
								  'maxLength',
							 | 
						||
| 
								 | 
							
								  'minLength',
							 | 
						||
| 
								 | 
							
								  'pattern',
							 | 
						||
| 
								 | 
							
								  'additionalItems',
							 | 
						||
| 
								 | 
							
								  'maxItems',
							 | 
						||
| 
								 | 
							
								  'minItems',
							 | 
						||
| 
								 | 
							
								  'uniqueItems',
							 | 
						||
| 
								 | 
							
								  'maxProperties',
							 | 
						||
| 
								 | 
							
								  'minProperties',
							 | 
						||
| 
								 | 
							
								  'required',
							 | 
						||
| 
								 | 
							
								  'additionalProperties',
							 | 
						||
| 
								 | 
							
								  'enum',
							 | 
						||
| 
								 | 
							
								  'format',
							 | 
						||
| 
								 | 
							
								  'const'
							 | 
						||
| 
								 | 
							
								];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function (metaSchema, keywordsJsonPointers) {
							 | 
						||
| 
								 | 
							
								  for (var i=0; i<keywordsJsonPointers.length; i++) {
							 | 
						||
| 
								 | 
							
								    metaSchema = JSON.parse(JSON.stringify(metaSchema));
							 | 
						||
| 
								 | 
							
								    var segments = keywordsJsonPointers[i].split('/');
							 | 
						||
| 
								 | 
							
								    var keywords = metaSchema;
							 | 
						||
| 
								 | 
							
								    var j;
							 | 
						||
| 
								 | 
							
								    for (j=1; j<segments.length; j++)
							 | 
						||
| 
								 | 
							
								      keywords = keywords[segments[j]];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    for (j=0; j<KEYWORDS.length; j++) {
							 | 
						||
| 
								 | 
							
								      var key = KEYWORDS[j];
							 | 
						||
| 
								 | 
							
								      var schema = keywords[key];
							 | 
						||
| 
								 | 
							
								      if (schema) {
							 | 
						||
| 
								 | 
							
								        keywords[key] = {
							 | 
						||
| 
								 | 
							
								          anyOf: [
							 | 
						||
| 
								 | 
							
								            schema,
							 | 
						||
| 
								 | 
							
								            { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }
							 | 
						||
| 
								 | 
							
								          ]
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return metaSchema;
							 | 
						||
| 
								 | 
							
								};
							 |