New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@betagouv/publicodes-voiture

Package Overview
Dependencies
Maintainers
0
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@betagouv/publicodes-voiture

Modèle de calcul de l'impact environnemental et du coût de la voiture

  • 0.3.6
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
116
decreased by-27.04%
Maintainers
0
Weekly downloads
 
Created
Source

@betagouv/publicodes-voiture

Reporter un bugDocumentation intéractiveContributePublicodes

Modèle de calcul des coûts et de l'empreinte CO2e de la possession et l'utilisation d'une voiture individuelle et de ses alternatives. Il existe un client autonome agir-voiture et une intégration est en cours dans l'application J'agis.

[!WARNING] Ce projet est en cours de construction et est susceptible de fortement évoluer. Voir le document de travail pour plus d'informations sur le projet.

Usage

Ajouter le paquet à vos dépendances :

yarn add @betagouv/publicodes-voiture

Avec la classe CarSimulator

Afin de faciliter la réutilisation du modèle, ce paquet expose en plus des règles Publicodes (accessibles depuis ./src/rules, une classe CarSimulator qui encapsule un moteur Publicodes.

[!NOTE] To see the full API documentation, please refer to jsDocs.io.

import { CarSimulator } from "@betagouv/publicodes-voiture"

// Initialisation du moteur (parsing des règles Publicodes)
const simulator = new CarSimulator()

// Définition des paramètres (cad. les réponses aux questions)
simulator.setInputs({
  "voiture . prix d'achat": 10000,
  "voiture . occasion": true,
  "voiture . gabarit": "moyenne",
  "voiture . motorisation": "thermique",
  "voiture . thermique . carburant": "gazole B7 ou B10",
  "usage . km annuels . connus": true,
  "usage . km annuels . renseignés": 5000,
  "voiture . thermique . prix carburant": 5,
  "voiture . durée de détention totale": 10,
  // ...
})

// Calcul pour la voiture "actuelle"
console.log(simulator.evaluateCar())
// Sortie :
{
  emissions: {
    value: 1115.731110659287,
    unit: "kgCO2e",
    title: "Empreinte carbone annuelle de votre voiture",
    isEnumValue: false,
    isApplicable: true,
  },
  cost: {
    value: 4344.882978723404,
    unit: "€/an",
    title: "Coûts annuels de votre voiture",
    isEnumValue: false,
    isApplicable: true,
  },
  size: {
    value: "moyenne",
    unit: undefined,
    title: "Monospace",
    isEnumValue: true,
    isApplicable: true,
  },
  motorisation: {
    value: "thermique",
    unit: undefined,
    title: "Thermique",
    isEnumValue: true,
    isApplicable: true,
  },
  fuel: {
    value: "gazole B7 ou B10",
    unit: undefined,
    title: "Diesel",
    isEnumValue: true,
    isApplicable: true,
  },
}

// Calcul des alternatives
const alternatives = simulator.evaluateAlternatives()

// Récupération des informations de la voiture cibles afin de filtrer les alternatives
// non compatibles (ex: ne pas proposer une voiture électrique si la personne
// n'a pas la possibilité de pouvoir recharger sa voiture quotidiennement).
simulator.setInputs(
  {
    "voiture . cible . gabarit": "SUV",
    "voiture . cible . borne de recharge": false,
  },
  {
    // Permet de simplement mettre à jours les entrées au lieu de les écraser
    // (comportement par défaut).
    overwrite: false
  },
)
console.log(simulator.evaluateTargetInfos())
// Sortie :
{
  size: {
    value: "SUV",
    unit: undefined,
    title: "SUV",
    isEnumValue: true,
    isApplicable: true,
  },
  hasChargingStation: {
    value: false,
    unit: undefined,
    title: "Borne de recharge",
    isEnumValue: false,
    isApplicable: true,
  }
}

Avec le moteur Publicodes

Il est également possible d'utiliser uniquement les règles Publicodes directement avec @betagouv/publicodes-voiture/rules :

import Engine from "publicodes"
import rules from "@betagouv/publicodes-voiture/rules"

const engine = new Engine(rules)

engine.setSituation({
  "voiture . prix d'achat": "10000 €",
  "voiture . occasion": "oui",
  "usage . km annuels . renseignés": "1000 km/mois",
  //...
})

const costs = engine.evaluate("coûts")
const emissions = engine.evaluate("empreinte")

En local

Compiler le modèle

Les règles Publicodes du modèle sont disponible dans le dossier rules/.

yarn compile:rules
Lancer les tests
yarn test
Lancer la documentation

[!TIP] Pour facilement parcourir la documentation et tester différentes situations pendant le développement, il est conseillé d'utiliser la commande yarn dev à la place. La online-doc sera bientôt dépréciée.

Le code de la documentation est disponible dans le dossier online-doc/.

Pour lancer l'app React en local permettant de parcourir la documentation du modèle, il suffit d'exécuter la commande suivante :


yarn install --cwd doc

yarn doc

Publier une nouvelle version

Afin de publier une nouvelle version il suffit d'exécuter la commande yarn version.

FAQs

Package last updated on 04 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc