diff --git a/bin/config-validator.js b/bin/config-validator.js index 422c053b36dc344beaddd064aef4626cd90e1b06..0257f4d41364299e445c6b4c2f1e7e20860ea6a5 100644 --- a/bin/config-validator.js +++ b/bin/config-validator.js @@ -7,8 +7,8 @@ const { validateConfig } = require('../lib/config/validation'); let returnVal = 0; -function validate(desc, config) { - const res = validateConfig(config); +async function validate(desc, config) { + const res = await validateConfig(config); if (res.errors.length) { console.log( `${desc} contains errors:\n\n${JSON.stringify(res.errors, null, 2)}` @@ -23,42 +23,44 @@ function validate(desc, config) { } } -const renovateConfigFiles = [ - 'renovate.json', - '.renovaterc', - '.renovaterc.json', -]; -for (const file of renovateConfigFiles) { - try { - const rawContent = fs.readFileSync(file, 'utf8'); - console.log(`Validating ${file}`); +(async () => { + const renovateConfigFiles = [ + 'renovate.json', + '.renovaterc', + '.renovaterc.json', + ]; + for (const file of renovateConfigFiles) { try { - const jsonContent = JSON.parse(rawContent); - validate(file, jsonContent); + const rawContent = fs.readFileSync(file, 'utf8'); + console.log(`Validating ${file}`); + try { + const jsonContent = JSON.parse(rawContent); + await validate(file, jsonContent); + } catch (err) { + console.log(`${file} is not valid JSON`); + returnVal = 1; + } } catch (err) { - console.log(`${file} is not valid JSON`); - returnVal = 1; + // file does not exist } - } catch (err) { - // file does not exist } -} -try { - const pkgJson = JSON.parse(fs.readFileSync('package.json', 'utf8')); - if (pkgJson.renovate) { - console.log(`Validating package.json > renovate`); - validate('package.json > renovate', pkgJson.renovate); + try { + const pkgJson = JSON.parse(fs.readFileSync('package.json', 'utf8')); + if (pkgJson.renovate) { + console.log(`Validating package.json > renovate`); + await validate('package.json > renovate', pkgJson.renovate); + } + if (pkgJson['renovate-config']) { + console.log(`Validating package.json > renovate-config`); + for (const presetConfig of Object.values(pkgJson['renovate-config'])) { + await validate('package.json > renovate-config', presetConfig); + } + } + } catch (err) { + // ignore } - if (pkgJson['renovate-config']) { - console.log(`Validating package.json > renovate-config`); - Object.values(pkgJson['renovate-config']).forEach(presetConfig => { - validate('package.json > renovate-config', presetConfig); - }); + if (returnVal !== 0) { + process.exit(returnVal); } -} catch (err) { - // ignore -} -if (returnVal !== 0) { - process.exit(returnVal); -} -console.log('OK'); + console.log('OK'); +})();