Commit Graph

22 Commits (engine-in-web-worker)

Author SHA1 Message Date
Johan Girod 860d7b4cf4 Supprime l'utilisation du mécanisme synchronisation pour la commune de localisation
- Renomme `localisation` en `commune`
- Déplace la logique de `getNextStep` dans un hook `useMissingVariables`
2022-10-05 19:44:55 +02:00
Johan Girod 14b8bc216d Met à jour à la dernière version de publicodes (beta.45) 2022-07-25 17:04:56 +02:00
Jérémy Rialland 7d824d1c9d Ajout d'eslint au extension recommandé 2022-04-07 18:24:32 +02:00
Jérémy Rialland a0f49a7eae Formatage eslint lors de la sauvegarde 2022-04-07 18:24:32 +02:00
Maxime Quandalle 1362c89bae ⬆ Mise à jour publicodes 2022-03-08 11:56:54 +00:00
Maxime Quandalle c61b996323 Corrige l'identifiant de l'extension styled-components recommandée 2022-01-31 13:33:07 +01:00
Johan Girod 82050636a1
Merge pull request #1788 from betagouv/charte-urssaf-bootstrap
Nouveau design system
2021-11-30 16:09:05 +01:00
Johan Girod 7147583081 ⚙️🎨 Ajoute la possibilité d'explorer les calculs dans un recalcul 2021-05-05 15:34:46 +02:00
Johan Girod 265a35909f Track les pages avec ATTinternet 2021-02-18 12:00:21 +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 e4bcb40aa2 ⬆️ bump publicodes to beta.3 2020-05-26 15:01:57 +02:00
Johan Girod 7ccc4ce4e3 Revert "Revert "Refacto : séparation claire du moteur et de l'application 🔥""
This reverts commit 8c7ab52a4f.
2020-04-24 11:27:48 +02:00
Johan Girod 8c7ab52a4f
Revert "Refacto : séparation claire du moteur et de l'application 🔥" 2020-04-21 15:49:48 +02:00
Johan Girod 03128ccda4 ⚙️ Ajoute la possibilité de spécifier des unités dans les valeurs par défaut et dans la situation 2020-04-21 11:03:58 +02:00
Maxime Quandalle 1891d85d15
🖊 Documente titre, description, références 2020-02-05 15:42:19 +01:00
Johan Girod 00b122fa97 ⚙️ ajoute la conversion d'unité
Gros changements en perspective :
- Supprime la notion de période, au bénéfice de celle d'unité
  (`période : mensuelle` devient `unité: €/mois`)
- Améliore les rapports d'erreur avec des messages plus clair
- Ajoute un avertissement lorsque des types ne sont pas compatible
- Ajoute la conversion automatique d'unité dans le moteur
- Ajoute une notion d'unité par défaut de la simulation,
  c'est l'unité vers laquelle les règles qui ne spécifient pas
  d'unité seront converties
- Ajoute une notion d'unité par défaut des règles, qui spécifie
  l'unité de la règle qui prévaut lorsque qu'il n'y a pas
  d'unité par défaut de la simulation (utile pour les question ou
  pour s'assurer du bon type d'une règle)
2019-12-16 11:34:04 +01:00
Maxime Quandalle 97f6d8ffbf Taille des tabulations dans VS Code
Notre config prettier utilise les tabulations plutôt que les espaces
pour l'indentation. Prettier essaie de formater le code avec des lignes
de 80 caractères maximum, et compte 2 caractères pour les tabulations.
MAJ de la configuration VS Code pour être aligné avec la configuration
prettier.

Naturellement le développeur reste libre d'afficher les tabulations
comme il veut.
2019-10-31 13:28:13 +01:00
Maxime Quandalle 6de970f0e3 🔥 Migration vers TypeScript
Outils
======

Ce commit retire le tooling de Flow, et ajoute le support de TypeScript
pour les fichiers .ts et .tsx. Il n'est pas nécessaire de tout migrer
d'un coup ce qui facilite la transition. On garde en effet le
compilateur Babel avec un preset TypeScript (ce qui permet donc de
retirer à la fois les types Flow et TypeScript) plutôt que d'utiliser le
compilateur standard pour la conversion du code. Cela permet aussi de
mieux s'intégrer avec d'autres outils, notamment les test-runners.

Ajout d'une nouvelle commande `yarn run type-check`, intégrée dans
CircleCI.

Par ailleurs ajout du support de l'opérateur ?? pour donner des valeurs
par défaut (nullish-coalescing-operator).

Typage des libraires tierces
============================

Les principales libraires que nous utilisons ont un typage TypeScript de
bon niveau, ce qui facilite l'intégration. J'ai mis à jour react-i18next
et i18next afin de corriger un problème de typage.

Typage du code
==============

Le typage est loin d'être complet dans ce commit, en particulier il
manque les types relatifs au state Redux, ainsi qu'au moteur (règle,
explication). Néanmoins le typage des contextes fonctionne, en
particulier sitePaths (avec un type récursif non trivial !) qui a déjà
permis de détecter un lien mort.

Le typage des "paths" (Components/, Règles/, etc.) fonctionne bien, y
compris avec l'auto-complétion automatique des import par Typescript.

TypeScript se révèle déjà bien agréable dans VSCode (auto-complétion,
refacto, etc.) ! Reste à migrer progressivement le reste du code !
2019-10-30 10:20:48 +01:00
Johan Girod 1aa05d1d1b Nouvelle navigation avec boutons retours pour le parcours gérer 2019-10-23 12:21:48 +02:00
Maxime Quandalle 8adc1ffd8e Ajout du paramètre organizeImports 2019-07-10 18:37:12 +02:00
Maxime Quandalle 5cef59ceb4 Commit des paramètres VS Code 2019-07-10 18:37:12 +02:00