fix recursive enabledIf

This commit is contained in:
Josh Harvey 2017-05-22 16:11:17 +01:00
parent c78519072b
commit aed92f0dab
2 changed files with 256 additions and 280 deletions

View file

@ -2,6 +2,7 @@ const pify = require('pify')
const fs = pify(require('fs')) const fs = pify(require('fs'))
const path = require('path') const path = require('path')
const R = require('ramda') const R = require('ramda')
const _ = require('lodash/fp')
const currencies = require('../../currencies.json') const currencies = require('../../currencies.json')
const languageRec = require('../../languages.json') const languageRec = require('../../languages.json')
@ -71,6 +72,13 @@ function validateCurrentConfig () {
.then(configValidate.validateRequires) .then(configValidate.validateRequires)
} }
function decorateEnabledIf (schemaFields, schemaField) {
const code = schemaField.fieldLocator.code
const field = _.find(f => f.code === code, schemaFields)
console.log('DEBUG200: %j', [schemaField, code, field, schemaFields])
return _.set('fieldEnabledIf', field.enabledIf || [], schemaField)
}
function fetchConfigGroup (code) { function fetchConfigGroup (code) {
const fieldLocatorCodeEq = R.pathEq(['fieldLocator', 'code']) const fieldLocatorCodeEq = R.pathEq(['fieldLocator', 'code'])
return Promise.all([fetchSchema(), fetchData(), fetchConfig(), fetchMachines()]) return Promise.all([fetchSchema(), fetchData(), fetchConfig(), fetchMachines()])
@ -90,8 +98,11 @@ function fetchConfigGroup (code) {
] ]
const configFields = R.uniq(R.flatten(candidateFields)).filter(R.identity) const configFields = R.uniq(R.flatten(candidateFields)).filter(R.identity)
const values = configFields const reducer = (acc, configField) => {
.reduce((acc, configField) => acc.concat(config.filter(fieldLocatorCodeEq(configField))), []) return acc.concat(config.filter(fieldLocatorCodeEq(configField)))
}
const values = _.map(f => decorateEnabledIf(schema.fields, f), configFields.reduce(reducer, []))
groupSchema.fields = undefined groupSchema.fields = undefined
groupSchema.entries = schemaFields groupSchema.entries = schemaFields

File diff suppressed because one or more lines are too long