🐛 Enlève la logique de safe valeur par défaut pour le mécanisme synchronisation
C'est logiquement à la couche "data" de se charger de spécifier les valeurs par défaut si besoin. Publicodes doit juste chercher la clé, et retourner null si elle n'existe pas dans l'objet.pull/1478/head
parent
b5c1f0b1fa
commit
6cabf21625
|
@ -16,20 +16,14 @@ const evaluate: EvaluationFunction<'synchronisation'> = function (node: any) {
|
|||
const valuePath = node.explanation.chemin.split(' . ')
|
||||
const path = (obj) => valuePath.reduce((res, prop) => res[prop], obj)
|
||||
const nodeValue = data.nodeValue == null ? null : path(data.nodeValue)
|
||||
// If the API gave a non null value, then some of its props may be null (the
|
||||
// API can be composed of multiple API, some failing). Then this prop will be
|
||||
// set to the default value defined in the API's rule
|
||||
const safeNodeValue =
|
||||
nodeValue == null && data.nodeValue != null
|
||||
? path(data.explanation.defaultValue)
|
||||
: nodeValue
|
||||
|
||||
const missingVariables = {
|
||||
...data.missingVariables,
|
||||
...(data.nodeValue === null ? { [data.dottedName]: 1 } : {}),
|
||||
}
|
||||
|
||||
const explanation = { ...node.explanation, data }
|
||||
return { ...node, nodeValue: safeNodeValue, explanation, missingVariables }
|
||||
return { ...node, nodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
export const mecanismSynchronisation = (v, context) => {
|
||||
|
|
Loading…
Reference in New Issue