summaryrefslogtreecommitdiffstats
path: root/utils/reply_schema_linter.js
diff options
context:
space:
mode:
Diffstat (limited to 'utils/reply_schema_linter.js')
-rw-r--r--utils/reply_schema_linter.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/utils/reply_schema_linter.js b/utils/reply_schema_linter.js
new file mode 100644
index 0000000..e2358d4
--- /dev/null
+++ b/utils/reply_schema_linter.js
@@ -0,0 +1,31 @@
+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)