Files
react-native-devtools-frontend/scripts/json_validator/validate_module_json.js
T
Blink Reformat 4c46d0969f The Great Blink mv for source files, part 2.
Move and rename files.

NOAUTOREVERT=true
NOPRESUBMIT=true
NOTREECHECKS=true
Bug: 768828
TBR=darin@chromium.org
NOTRY=true

Change-Id: I66d3b155808bc5bdbf237b80208e1e552bcf7f28
Reviewed-on: https://chromium-review.googlesource.com/1001153
Reviewed-by: Blink Reformat <blink-reformat@chromium.org>
Commit-Queue: Blink Reformat <blink-reformat@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#549061}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0aee4434a4dba42a42abaea9bfbc0cd196a63bc1
2018-04-07 15:32:37 +00:00

40 lines
1.3 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const utils = require('../utils');
const FRONTEND_PATH = path.resolve(__dirname, '..', '..', 'front_end');
const modules = [];
for (let dir of fs.readdirSync(FRONTEND_PATH)) {
if (!utils.isDir(path.resolve(FRONTEND_PATH, dir)))
continue;
let module = path.resolve(dir, 'module.json');
if (utils.isFile(path.resolve(FRONTEND_PATH, dir, 'module.json')))
modules.push(dir);
}
const Ajv = require('ajv');
const ajv = new Ajv();
// This seems to be the most widely supported version of the schema.
ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json'));
const schema = JSON.parse(fs.readFileSync(path.resolve(__dirname, 'module.schema.json')));
const validate = ajv.compile(schema);
let totalErrors = 0;
for (let module of modules) {
const moduleObject = JSON.parse(fs.readFileSync(path.resolve(FRONTEND_PATH, module, 'module.json')));
const valid = validate(moduleObject);
if (!valid) {
console.log('Issue with ./front_end/' + module + '/module.json:');
totalErrors++;
validate.errors.sort((a, b) => b.dataPath.length - a.dataPath.length);
const error = validate.errors[0];
console.log(' ', error.dataPath, error.message, error.params);
console.log('');
}
}
if (totalErrors)
console.log('module.json errors:', totalErrors);
process.exit(totalErrors);