diff options
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/index.js | 3 | ||||
| -rw-r--r-- | backend/reduce.js | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/backend/index.js b/backend/index.js index 45869fb..9679a02 100644 --- a/backend/index.js +++ b/backend/index.js @@ -11,6 +11,7 @@ const R = require('ramda'), const loadFTimestamped = source.loadFTimestamped(config); const deriveStatistics = reduce.deriveStatistics(config.reduce); const aggregatePayloads = reduce.aggregatePayloads(config.reduce); +const cleanPayloads = reduce.cleanPayloads(config.reduce); const saveFPayloads = file.saveFPayloads(config.file); function main() { @@ -22,7 +23,7 @@ function main() { const futures = R.map(loadFTimestamped, laterMoments); Future.parallel(1, futures) - .map(R.compose(deriveStatistics, aggregatePayloads, R.unnest)) + .map(R.compose(deriveStatistics, aggregatePayloads, cleanPayloads, R.unnest)) .chain(saveFPayloads(config.file.reportPattern())) .fork(console.error, (d) => console.log(JSON.stringify(d, null, 2))); } diff --git a/backend/reduce.js b/backend/reduce.js index 3ac9da2..519004c 100644 --- a/backend/reduce.js +++ b/backend/reduce.js @@ -3,6 +3,13 @@ const R = require('ramda'), utils = require('./utils'); +function cleanPayloads(config) { + return R.map(R.pipe( + // some Talents are 'null', some are 'NoTalent' + R.over(R.lensProp('Talent'), R.defaultTo('NoTalent')), + )); +} + function aggregatePayloads(config) { // Ramda group() only groups neighbors, so sort beforehand const sorter = R.props(config.group); @@ -46,6 +53,7 @@ function deriveStatistics(config) { } module.exports = { + cleanPayloads, aggregatePayloads, deriveStatistics, }; |
