Commit Graph

10 Commits (b2cee93d58433a191d943f9767c1ab76e562ba21)

Author SHA1 Message Date
Maxime Quandalle fcd8306ace ⚙️ Petites simplifications du code du moteur
- évite l'indirection vers "parseReferenceTransforms" pour les
  références simples (il faut encore simplifier ce code)
- déplacement de fonctions de parsage vers les "stateless"
- typage de registerEvaluationFunction
- simplifie fragments.join()
2020-11-05 18:25:43 +01:00
Maxime Quandalle bc8c4d823a ⚙️ Nouvelle API d'évaluation
Modifie l'API de la fonction `evaluate` pour transmettre le contexte
avec `this`, ce qui simplifie l'interface de ces fonctions.

L'objet `this` (qui contient `this.parsedRules`, `this.situation`,
`this.evaluate`, etc.) est un interpréteur Publicodes, mais nous n'avons
pas besoin de créer une nouvelle abstraction car cet objet présente
exactement la même interface que l'objet public exposé dans
`publicodes/index.ts` et c'est donc l'interface publique qui est
utilisée dans les appels internes.
2020-11-05 10:22:48 +01:00
Maxime Quandalle c66e529fb7 ⚙️ Ajout d'un type de nœud serialisable
Ce commit parachève la sortie de l'ensemble des functions "evaluate" de
l'AST et ajoute un "nodeKind" sur chaque nœud afin de les associer à la
bonne function d'évaluation.

L'API pour les mécanismes pourra être améliorée afin de ne pas appeler
`registerEvaluationFunction` sur chaque mécanisme mais en standardisant
l'interface exportée par les mécanismes, par exemple

  export { name, parse, evaluate, render }

Par ailleurs il devrait être facile de sortir les fonctions `jsx` en se
basant sur les mêmes "nodeKind".

Enfin, il faudra nettoyer l'AST pour supprimer les attributs inutilisés
et ajouter du typage fort.
2020-11-05 10:22:48 +01:00
Johan Girod fcb44fc317 transforme applicable si et non applicable si en mécanisme chainée
Par la même occasion, uniformise l'écriture des mécanismes chainées
2020-11-04 11:59:03 +01:00
Maxime Quandalle 34e9204eba 🔥 Supprime la fonction collectDefaults
Cette fonction n'était plus utilisée depuis #1025
2020-09-15 11:58:18 +02:00
Maxime Quandalle d43ab13942 ⚙️ Simplifie la logique de la fonction evaluateNode 2020-09-15 11:58:18 +02:00
Maxime Quandalle 2236e32674 Corrige la configuration Eslint 2020-09-12 18:40:36 +02:00
Johan Girod 60cae1f5ce 🐛 corrige une erreur dans l'affichage d'unité avec pourcentage 2020-05-26 17:33:26 +02:00
Johan Girod f3c9d7c60d 🐛 corrige le montant de la CSG dans l'aide aux indépendants
note : il faudra songer sérieusement à modifier ce mécanisme de composante, source de nombreux bug (cf #874)

Ajoute des tests de non regressions pour la page d'aide
2020-05-19 18:07:19 +02:00
Johan Girod d91283cde2 🔥 Sépare le moteur dans un packet isolé 2020-05-14 15:25:22 +02:00