ajv #129

node v12.22.12
version: 1.0.0
endpointsharetweet
var Ajv = require('ajv'); var ajv = Ajv(); var ajvFilter = Ajv({removeAdditional: true}); var schema = { "type": "object", "properties": { "modes": { "type": "array", "minItems": 1, "additionalItems": false, "items": { "type": "object", "properties": { "mode": { "enum": [ "ftp", "email" ] }, "account": { "type": "string", "pattern": "^[a-f|0-9]{8}quot; }, "mailingList": { "type": "string", "pattern": "^[a-f|0-9]{8}quot; } }, "additionalProperties": false, "oneOf": [ { "mode": { "enum": [ "ftp" ] }, "required": [ "mode", "account" ] }, { "mode": { "enum": [ "email" ] }, "required": [ "mode", "mailingList" ] } ] } } }, "required": [ "modes" ], "additionalProperties": false }; const data = { "modes": [ { "mode": "ftp", "account": "e69b3f54" }, { "mode": "email", "mailingList": "c3d12752" } ] }; ajv.validate(schema, data); console.log(ajv.errors); ajvFilter.validate(schema, data); console.log(ajvFilter.errors); console.log(data);
Loading…

no comments

    sign in to comment