blob: 00c0d49112477b580725f9be4b7402127f8ae7bb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
'use strict'
const { has, set, concat, forEach, chain } = require('lodash')
module.exports = rulesBundle =>
chain(rulesBundle)
.reduce((acc, { test, ...rules }) => {
forEach(rules, function (innerRules, propName) {
if (test) forEach(innerRules, rule => (rule.test = test))
set(
acc,
propName,
has(acc, propName)
? concat(acc[propName], innerRules)
: concat(innerRules)
)
return acc
})
return acc
}, {})
.toPairs()
.value()
|