File size: 1,332 Bytes
87be38f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
const Ajv = require("ajv")
const addFormats = require("ajv-formats")
const ajv = new Ajv()
addFormats(ajv)
const schema = {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": ["source", "turnstile-min", "turnstile-max", "waf-session"],
},
"proxy": {
"type": "object",
"properties": {
"host": { "type": "string" },
"port": { "type": "integer" },
"username": { "type": "string" },
"password": { "type": "string" }
},
"additionalProperties": false
},
"url": {
"type": "string",
"format": "uri",
},
"authToken": {
"type": "string"
},
"siteKey": {
"type": "string"
}
},
"required": ["mode", "url"],
"additionalProperties": false
}
// const data = {
// mode: "source",
// url: "https://example.com",
// proxy: {
// host: "localhost",
// port: 8080,
// username: "test",
// password: "test"
// },
// authToken: "123456"
// }
function validate(data) {
const valid = ajv.validate(schema, data)
if (!valid) return ajv.errors
else return true
}
module.exports = validate |