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.
		
		
		
		
		
			
		
			
				
					24 lines
				
				496 B
			
		
		
			
		
	
	
					24 lines
				
				496 B
			| 
											3 years ago
										 | const Ajv = require("ajv") | ||
|  | const ajv = new Ajv({allErrors: true}) | ||
|  | 
 | ||
|  | const schema = { | ||
|  |   type: "object", | ||
|  |   properties: { | ||
|  |     foo: {type: "string"}, | ||
|  |     bar: {type: "number", maximum: 3}, | ||
|  |   }, | ||
|  |   required: ["foo", "bar"], | ||
|  |   additionalProperties: false, | ||
|  | } | ||
|  | 
 | ||
|  | const validate = ajv.compile(schema) | ||
|  | 
 | ||
|  | test({foo: "abc", bar: 2}) | ||
|  | test({foo: 2, bar: 4}) | ||
|  | 
 | ||
|  | function test(data) { | ||
|  |   const valid = validate(data) | ||
|  |   if (valid) console.log("Valid!") | ||
|  |   else console.log("Invalid: " + ajv.errorsText(validate.errors)) | ||
|  | } |