1
0
Fork 0
mirror of https://github.com/betagouv/mon-entreprise synced 2025-02-09 23:55:01 +00:00
mon-entreprise/publicodes/source/controls.js

20 lines
492 B
JavaScript
Raw Normal View History

import { evaluateNode } from './evaluation'
export let evaluateControls = (cache, situation, parsedRules) => {
2020-03-26 16:03:19 +01:00
return Object.values(parsedRules)
.filter(rule => !!rule.contrôles)
.map(rule =>
rule.contrôles.map(contrôle => ({
...contrôle,
2019-11-07 12:34:03 +01:00
evaluated: evaluateNode(
{ ...cache, contextRule: [rule.dottedName] },
situation,
2019-11-07 12:34:03 +01:00
parsedRules,
2020-03-26 16:03:19 +01:00
contrôle.testExpression
2019-11-07 12:34:03 +01:00
)
}))
2020-03-26 16:03:19 +01:00
)
.flat()
.filter(contrôle => contrôle.evaluated.nodeValue === true)
}