diff --git a/lib/config/massage.js b/lib/config/massage.js index b66c6f02e24846f305f30a9fe63121b50b72f675..4ce2b20a8ba447553004985c919bbcb80f9566d2 100644 --- a/lib/config/massage.js +++ b/lib/config/massage.js @@ -1,12 +1,7 @@ const deepcopy = require('deepcopy'); const options = require('./definitions').getOptions(); -const allowedStrings = []; -options.forEach(option => { - if (option.allowString) { - allowedStrings.push(option.name); - } -}); +let allowedStrings; module.exports = { massageConfig, @@ -14,6 +9,14 @@ module.exports = { // Returns a massaged config function massageConfig(config) { + if (!allowedStrings) { + allowedStrings = []; + options.forEach(option => { + if (option.allowString) { + allowedStrings.push(option.name); + } + }); + } const massagedConfig = deepcopy(config); for (const key of Object.keys(config)) { const val = config[key]; diff --git a/lib/config/migration.js b/lib/config/migration.js index a97f9c2797a4909ffced7e3673a0d1e1832ab56e..afe19143d113494498015c9abfded990a33e50e4 100644 --- a/lib/config/migration.js +++ b/lib/config/migration.js @@ -2,10 +2,7 @@ const later = require('later'); const deepcopy = require('deepcopy'); const options = require('./definitions').getOptions(); -const optionTypes = {}; -options.forEach(option => { - optionTypes[option.name] = option.type; -}); +let optionTypes; module.exports = { migrateConfig, @@ -27,6 +24,12 @@ const removedOptions = [ // Returns a migrated config function migrateConfig(config) { + if (!optionTypes) { + optionTypes = {}; + options.forEach(option => { + optionTypes[option.name] = option.type; + }); + } let isMigrated = false; const migratedConfig = deepcopy(config); for (const key of Object.keys(config)) { diff --git a/lib/config/presets.js b/lib/config/presets.js index 096fedcf66bcf2f2bc9cc6a2ea2568ce5f234e6d..703c39c5f50e81911930799e37f71267aa3fd446 100644 --- a/lib/config/presets.js +++ b/lib/config/presets.js @@ -161,7 +161,8 @@ async function getPreset(preset, logger) { logger.warn(`Cannot find preset ${preset}`); return {}; } - logger.debug({ presetConfig }, `Found preset ${preset}`); + logger.debug(`Found preset ${preset}`); + logger.trace({ presetConfig }); if (params) { const argMapping = {}; for (const [index, value] of params.entries()) { diff --git a/lib/config/validation.js b/lib/config/validation.js index 6329be067e40105d49599bd6c1bb9358838ce6f2..6e43cf17fa937eac9fd8bc4648d377a3d26042b3 100644 --- a/lib/config/validation.js +++ b/lib/config/validation.js @@ -1,16 +1,19 @@ const options = require('./definitions').getOptions(); const { hasValidSchedule } = require('../workers/branch/schedule'); -const optionTypes = {}; -options.forEach(option => { - optionTypes[option.name] = option.type; -}); +let optionTypes; module.exports = { validateConfig, }; function validateConfig(config) { + if (!optionTypes) { + optionTypes = {}; + options.forEach(option => { + optionTypes[option.name] = option.type; + }); + } let errors = []; let warnings = [];