@betagouv/aides-velo
Modèle Publicodes pour le calcul des aides vélo en
France.
[!NOTE]
Ce modèle est la continuité de celui de Mes Aides
Vélo, rapatrié dans l'organisation Beta.gouv pour
faciliter sa maintenance et son évolution.
[!WARNING]
Ce modèle est en cours de développement et n'est pas encore complet. L'API
d'utilisation est susceptible d'évoluer, veuillez en tenir compte lors de
l'utilisation de ce paquet. (N'hésitez pas à ouvrir une issue si vous avez
des suggestions ou des retours à faire).
Installation
yarn install @betagouv/aides-velo
Utilisation
Par soucis de praticité, ce paquet expose en plus des règles Publicodes, une
classe
AidesVeloEngine
qui encapsule un moteur Publicodes afin de faciliter l'utilisation des règles.
En exposant notamment la méthode
computeAides
qui permet de calculer et récupérer la liste de toutes les aides éligibles
pour une situation donnée, ainsi que la méthode
setInputs
qui permet de définir les valeurs des questions du modèle de manière au format
JS et type-safe (voir le type
Questions
).
[!NOTE]
To see the full API documentation, please refer to
jsDocs.io.
Avec la classe AidesVeloEngine
import { AidesVeloEngine } from "@betagouv/aides-velo";
const engine = new AidesVeloEngine();
engine.setInputs({
"localisation . code insee": "33119",
"localisation . epci": "Bordeaux Métropole",
"localisation . département": "33",
"localisation . région": "75",
"localisation . pays": "France",
"vélo . type": "électrique",
"vélo . état": "neuf",
"vélo . prix": 1000,
"revenu fiscal de référence par part . revenu de référence": 20000,
"revenu fiscal de référence par part . nombre de parts": 2,
});
engine
.computeAides()
.forEach(({ title, amount }) => console.log(`Aide ${title} : ${amount}€`));
Avec les règles Publicodes
Il est également possible d'utiliser les règles Publicodes directement.
import Engine, { formatValue } from "publicodes";
import { rules } from "@betagouv/aides-velo";
const engine = new Engine(rules);
engine.setSituation({
"localisation . epci": "'CA du Grand Angoulême'",
"vélo . type": "'électrique'",
"vélo . état": "'occasion'",
"vélo . prix": 1000,
"revenu fiscal de référence par part": 2000,
});
const result = engine.evaluate("aides . grand angouleme");
console.log(result.nodeValue);
console.log(formatValue(result));
Développement
// Install the dependencies and run postinstall scripts
yarn install
// Compile the Publicodes rules
yarn run compile:rules
// Run the tests
yarn run test
// Compile the whole package (rules + wrapper function)
yarn run compile
// Run the documentation server
yarn run doc