redict/utils/reply_schema_linter.js
Drew DeVault 50ee0f5be8 all: let's go LGPL over GPL
Based on feedback from interested parties
2024-03-21 20:11:44 +01:00

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)