Aller au contenu

ddd-ts-kit/purity-no-environment

Identifiant d'architecture : purity/no-environment. Sévérité par défaut : error dans recommended, error dans strict.

S'applique à : domain/ et application/ d'un contexte, tests exclus.

La configuration, les journaux, les fichiers et le réseau sont le monde extérieur. Atteints directement, ils font dépendre un cas d'usage de la machine sur laquelle il tourne ; derrière un port, ils sont un paramètre.

  • process.env, argv, cwd, exit, stdout, stderr, stdin
  • tout membre de console
  • un appel du fetch global, new XMLHttpRequest, new WebSocket, new EventSource
  • un import de fs, http, https, http2, net, dgram, dns, tls, child_process, worker_threads, os, readline, axios, node-fetch, undici, got, dotenv

Incorrect :

const url = process.env['PAYMENT_URL'];
console.log('charging', amount);
await fetch(url);

Correct :

await this.paymentGateway.charge(amount);

Aucune.

rules."purity/no-environment" à off dans ddd-ts-kit.config.json désactive la règle, et // ddd-ts-kit-disable-next-line purity/no-environment -- <reason> désactive une ligne, exactement comme pour ddd-ts-kit check.

  • Une enveloppe autour de l'accès interdit (un auxiliaire de la plateforme qui appelle Date.now()) n'est pas vue ici ; les règles de couche arrêtent l'import de cet auxiliaire.
  • Une déclaration locale qui masque la globale (const process = ...) n'est pas signalée.

ddd-ts-kit check cherche les mêmes noms avec des expressions régulières. Cette règle fait autorité : elle distingue un nom masqué de la globale, et du code d'une chaîne.