mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-22 08:08:53 -05:00
50ee0f5be8
Based on feedback from interested parties
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
// SPDX-FileCopyrightText: 2024 Redict Contributors
|
|
// SPDX-FileCopyrightText: 2024 Salvatore Sanfilippo <antirez at gmail dot com>
|
|
//
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
|
|
function validate_schema(command_schema) {
|
|
var error_status = false
|
|
const Ajv = require("ajv/dist/2019")
|
|
const ajv = new Ajv({strict: true, strictTuples: false})
|
|
let json = require('../src/commands/'+ command_schema);
|
|
for (var item in json) {
|
|
const schema = json[item].reply_schema
|
|
if (schema == undefined)
|
|
continue;
|
|
try {
|
|
ajv.compile(schema)
|
|
} catch (error) {
|
|
console.error(command_schema + " : " + error.toString())
|
|
error_status = true
|
|
}
|
|
}
|
|
return error_status
|
|
}
|
|
|
|
const schema_directory_path = './src/commands'
|
|
const path = require('path')
|
|
var fs = require('fs');
|
|
var files = fs.readdirSync(schema_directory_path);
|
|
jsonFiles = files.filter(el => path.extname(el) === '.json')
|
|
var error_status = false
|
|
jsonFiles.forEach(function(file){
|
|
if (validate_schema(file))
|
|
error_status = true
|
|
})
|
|
if (error_status)
|
|
process.exit(1)
|