Commit Graph

18 Commits (2e6ce3ab1a38189ecd071b97a8aa239e62a523ce)

Author SHA1 Message Date
Maxime Quandalle 2e6ce3ab1a Squashed 'publicodes/' changes from 10a30d32..a680ad31
a680ad31 🐛 Corrige un bug sur l'affichage des remplacements dans la doc publicodes
1e45d98d 🔥 Supprime la transformation d'emoji dans la doc publicodes
77973a9b 🐛 Répare l'affichage des règles remplacées
341b2e39 🎨🐛 corrige le style du remplacement dans les sommes
24dce683 🎨 Améliore l'explication des règles avec remplacement
6d086823 💚 fix lint
2d64d908 🏗Add export as Pdf button on simulators
163b766a  Prettier linting in publicodes subtree
e1507975  Reformat files
80161f95 🐛 Fix VAT example
79bde0be 🔥 Remove "classnames" dependency from publicodes-react
3e65e320 🔥 Remove ramda from publicodes-react
71b68707 📦 Publicodes v1.0.0-beta.16
bdc92216 Merge the tests and publish workflows
1c032ebc  Add test for a value with a percentage in its unit
d2865e8c Disable sum optimization inside comparisons
f4faa35d Ajout d'un test qui casse l'implé actuelle des missing parentes
f6105283 🖋 Document packages publication on NPM
a79eeb86 Better Github workflows
d0db4d09 Import publish action
c268cff5 Type checking in CI
a35403d7 Correction formattage
3022fd78 Add a separate cache for applicability
35095da9 Optimize the evaluation of applicability
7525446e Add a github action to run tests on push
39a12a13 Ajout d'un prettierrc / reformattage de quelques fichiers récents
c296a25e Ajout d'un deuxièmes test non fonctionnel sur le sujet #33
9f5afb4e Désactivation d'un nouveau test pas encore résolu
76d00085 Récupération de la complexité initiale du test missing variations
93210235 🐛 Meilleures missingVariables des variations
369abeae Simplification du test missingVariables qui ne marche pas
64217d3d Nouveau test missing variables éval paresseuse variations
d9c3e1f6 Conversion d'un gros test JS object en YAML
615ae5e5 Ajout d'un test râté pour #33
d290b46d Passage à mochapack pour webpack 5
5d7a5b31 Paquets NPM et conf babel manquants
1df9a8d4 Ajout d'un .gitignore et yarn.lock
6c2d0203 Uniformise l'unité des arrondis
2cbffe8a ⬆ MAJ Typescript vers 4.3
678403e4 Corrige le calcul des cotisations forfaitaires de début d'activité
8cdaac05 Simpler condition component (#1578)
b7459617 🔥 Supprime les variables temporelles
db62b57d 🔥 Supprime l'utilisation des temporals dans les mécanismes

git-subtree-dir: publicodes
git-subtree-split: a680ad31c33b93e4f35171488cec1b6f9e08179a
2021-11-05 15:52:37 +01:00
Maxime Quandalle 969fb01d87 🌗 Sépare les configurations tsconfig 2021-05-20 12:38:03 +02:00
Maxime Quandalle 3857b274be 🌗 Sépare les paquets publicodes core et react 2020-12-16 18:14:45 +01:00
Johan Girod ab02bbb5f5 🔥 Mise à jour du site mon-entreprise suite aux refacto de evaluateRule 2020-12-07 14:39:53 +01:00
Maxime Quandalle cc602e1a48 ⬆ MAJ TypeScript vers 4.1
Plein de nouveautés et notamment la possibilité de "programmer" les
types chaînes littérales qui nous sera utile par exemple pour vérifier
statiquement la validité d'une *expression* publicode dans
`engine.evaluate`.
https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/

⬆ MAJ ESLint-typescript pour la compatibilité
2020-11-20 12:08:21 +01:00
Johan Girod aad6eee12f Investigue la publication du paquet npm publicode 2020-05-18 16:44:12 +02:00
Maxime Quandalle ced589ad74 ⬆ MAJ TypeScript vers 3.9 2020-05-15 10:32:45 +02:00
Johan Girod d91283cde2 🔥 Sépare le moteur dans un packet isolé 2020-05-14 15:25:22 +02:00
Alexandre Hajjar 291b5ff3bc TS-aware eslint + in CI
* Use @typescript-eslint/parser
* Add npm/yarn scripts: prettier check and eslint on all files
* Run all of this in CI (along with eslintrc checker)
* Use typescript parser only for ts{x,} files
* Fix test & cypress sub-configs
* Fix .test.js + off explicit-function-return-type
2020-05-05 18:24:14 +02:00
Maxime Quandalle 6424f2e197
Déplace les règles vers source/rules 2020-04-06 00:50:32 +02:00
Maxime Quandalle c65a04cf86 ⚙️ Réorganise l'API publique de la lib 2020-03-17 09:53:09 +01:00
Maxime Quandalle e9d5f1c62b 🔥 Rangement
* Suppression de fichiers "documentation" qui n'avaient pas été modifiés
  depuis deux ans et n'étaient plus à jour
* Déplacement de base.yaml dans un répertoire publicode de premier
  niveau. Déplacement de la traduction des règles dans le répertoire
  source/locales
* Suppression de la page /documentation/exemples qui n'était pas
  référencée sur le site, pas consultée dans nos stats, et boguée.
* Suppression de la configuration git quotepath qui ne semble plus utile
2020-02-05 14:30:54 +01:00
Maxime Quandalle ca5b7cc2df
Ajout des types null et undefined
Ajout des paramètres strictNullChecks et strictPropertyInitialization
dans la configuration TypeScript et correction des environ 70 erreurs
de typage résultantes.
2019-12-18 18:52:32 +01:00
Maxime Quandalle d89833502b
Meilleur typage des arguments des fonctions
Ajout du paramètre strictFunctionTypes dans la configuration TypeScript
voir https://www.stephanboyer.com/post/132/what-are-covariance-and-contravariance

Malheureusement a nécessité l'ajout de any a plusieurs endroits.
2019-12-18 18:47:54 +01:00
Maxime Quandalle 1b963b8bbe Ajout de l'option "allowJs" dans tsconfig.js
Cela permet l'inférence de type à partir des fichiers js qui ne sont pas
encore convertis en TypeScript.
Par ailleurs suppression des dernières traces de Flow.
Ajout d'options plus strictes pour dans la config tsconfig.js
2019-12-17 11:34:12 +01:00
Maxime Quandalle dff4236e0d Typage du nom des règles
Pour éviter de référencer des règles qui auraient été renommées.
À permis de détecter deux usages de règles "mortes".
2019-12-16 13:21:04 +01:00
Maxime Quandalle 7e2a4085a7 Poursuite de la migration TypeScript
* Utilisation de la version stable de TypeScript 3.7

* Début de migration du State Redux. Plutôt que de redéfinir les types
  en doublon par rapport aux actions et reducers, on utilise les valeurs
  retournées par ces fonctions comme source pour les types globaux.

* Modification de tsconfig pour meilleur typage dans VS Code

* Meilleur typage de l'environnement : suppression de @types/node qui
  était trop large (contient tout l'environnement serveur), et
  remplacement par @types/webpack-env. Par ailleurs typage des variables
  d'environnement utilisées.

* Début de migration de l'économie collaborative

* Migration de nombreux composants UI

* Mise à jour de dépendances pour récupérer un meilleur typage

* Ajout d'un hook pour configurer les simulateurs

* Suppression du higher-order component "withSitePaths", on utilise
  systématiquement le hook useContext.

L'essentiel de l'application est maintenant migré, reste le moteur !
2019-11-11 11:33:38 +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